Introduction
In Java, the LongUnaryOperator
interface is a functional interface that represents an operation on a single long
-valued operand, producing a long
result. It is part of the java.util.function
package and is commonly used for operations that transform long
values.
Table of Contents
- What is
LongUnaryOperator
? - Methods and Syntax
- Examples of
LongUnaryOperator
- Real-World Use Case
- Conclusion
1. What is LongUnaryOperator?
LongUnaryOperator
is a functional interface that takes a single long
as input and returns a long
as a result. It is useful for scenarios where mathematical operations or transformations are applied to long
values.
2. Methods and Syntax
The main methods in the LongUnaryOperator
interface are:
long applyAsLong(long operand)
: Applies this operator to the given operand and returns along
result.default LongUnaryOperator andThen(LongUnaryOperator after)
: Returns a composed operator that first applies this operator to its input, and then applies theafter
operator to the result.default LongUnaryOperator compose(LongUnaryOperator before)
: Returns a composed operator that first applies thebefore
operator to its input, and then applies this operator to the result.
Syntax
LongUnaryOperator operator = (long operand) -> {
// operation on operand
return result;
};
3. Examples of LongUnaryOperator
Example 1: Doubling a Value
import java.util.function.LongUnaryOperator;
public class DoublingExample {
public static void main(String[] args) {
// Define a LongUnaryOperator that doubles the value
LongUnaryOperator doubleValue = (operand) -> operand * 2;
long result = doubleValue.applyAsLong(5L);
System.out.println("Doubled Value: " + result);
}
}
Output:
Doubled Value: 10
Example 2: Incrementing a Value
import java.util.function.LongUnaryOperator;
public class IncrementExample {
public static void main(String[] args) {
// Define a LongUnaryOperator that increments the value by 1
LongUnaryOperator increment = (operand) -> operand + 1;
long result = increment.applyAsLong(7L);
System.out.println("Incremented Value: " + result);
}
}
Output:
Incremented Value: 8
Example 3: Using andThen
import java.util.function.LongUnaryOperator;
public class AndThenExample {
public static void main(String[] args) {
// Define two LongUnaryOperators
LongUnaryOperator doubleValue = (operand) -> operand * 2;
LongUnaryOperator increment = (operand) -> operand + 1;
// Compose the operators
LongUnaryOperator doubleThenIncrement = doubleValue.andThen(increment);
long result = doubleThenIncrement.applyAsLong(3L);
System.out.println("Result after doubling and incrementing: " + result);
}
}
Output:
Result after doubling and incrementing: 7
Example 4: Using compose
import java.util.function.LongUnaryOperator;
public class ComposeExample {
public static void main(String[] args) {
// Define two LongUnaryOperators
LongUnaryOperator increment = (operand) -> operand + 1;
LongUnaryOperator doubleValue = (operand) -> operand * 2;
// Compose the operators
LongUnaryOperator incrementThenDouble = doubleValue.compose(increment);
long result = incrementThenDouble.applyAsLong(3L);
System.out.println("Result after incrementing and doubling: " + result);
}
}
Output:
Result after incrementing and doubling: 8
4. Real-World Use Case: Applying Discounts
In e-commerce applications, LongUnaryOperator
can be used to apply discounts to product prices.
import java.util.function.LongUnaryOperator;
public class DiscountCalculator {
public static void main(String[] args) {
// Define a LongUnaryOperator to apply a 10% discount
LongUnaryOperator applyDiscount = (price) -> (long) (price * 0.9);
long discountedPrice = applyDiscount.applyAsLong(100L);
System.out.println("Discounted Price: " + discountedPrice);
}
}
Output:
Discounted Price: 90
Conclusion
The LongUnaryOperator
interface is a practical tool in Java for transforming long
values. It is particularly useful for mathematical calculations and data processing. Using LongUnaryOperator
can lead to cleaner and more efficient code, especially in functional programming contexts. The andThen
and compose
methods allow for easy composition of operations, enhancing code modularity.
Comments
Post a Comment
Leave Comment