Java IntUnaryOperator

Introduction

In Java, the IntUnaryOperator interface is a functional interface that represents an operation on a single int-valued operand, producing an int result. It is part of the java.util.function package and is commonly used for operations that transform int values.

Table of Contents

  1. What is IntUnaryOperator?
  2. Methods and Syntax
  3. Examples of IntUnaryOperator
  4. Real-World Use Case
  5. Conclusion

1. What is IntUnaryOperator?

IntUnaryOperator is a functional interface that takes a single int as input and returns an int as a result. It is useful for scenarios where mathematical operations or transformations are applied to int values.

2. Methods and Syntax

The main methods in the IntUnaryOperator interface are:

  • int applyAsInt(int operand): Applies this operator to the given operand and returns an int result.
  • default IntUnaryOperator andThen(IntUnaryOperator after): Returns a composed operator that first applies this operator to its input, and then applies the after operator to the result.
  • default IntUnaryOperator compose(IntUnaryOperator before): Returns a composed operator that first applies the before operator to its input, and then applies this operator to the result.

Syntax

IntUnaryOperator operator = (int operand) -> {
    // operation on operand
    return result;
};

3. Examples of IntUnaryOperator

Example 1: Doubling a Value

import java.util.function.IntUnaryOperator;

public class DoublingExample {
    public static void main(String[] args) {
        // Define an IntUnaryOperator that doubles the value
        IntUnaryOperator doubleValue = (operand) -> operand * 2;

        int result = doubleValue.applyAsInt(5);
        System.out.println("Doubled Value: " + result);
    }
}

Output:

Doubled Value: 10

Example 2: Incrementing a Value

import java.util.function.IntUnaryOperator;

public class IncrementExample {
    public static void main(String[] args) {
        // Define an IntUnaryOperator that increments the value by 1
        IntUnaryOperator increment = (operand) -> operand + 1;

        int result = increment.applyAsInt(7);
        System.out.println("Incremented Value: " + result);
    }
}

Output:

Incremented Value: 8

Example 3: Using andThen

import java.util.function.IntUnaryOperator;

public class AndThenExample {
    public static void main(String[] args) {
        // Define two IntUnaryOperators
        IntUnaryOperator doubleValue = (operand) -> operand * 2;
        IntUnaryOperator increment = (operand) -> operand + 1;

        // Compose the operators
        IntUnaryOperator doubleThenIncrement = doubleValue.andThen(increment);

        int result = doubleThenIncrement.applyAsInt(3);
        System.out.println("Result after doubling and incrementing: " + result);
    }
}

Output:

Result after doubling and incrementing: 7

Example 4: Using compose

import java.util.function.IntUnaryOperator;

public class ComposeExample {
    public static void main(String[] args) {
        // Define two IntUnaryOperators
        IntUnaryOperator increment = (operand) -> operand + 1;
        IntUnaryOperator doubleValue = (operand) -> operand * 2;

        // Compose the operators
        IntUnaryOperator incrementThenDouble = doubleValue.compose(increment);

        int result = incrementThenDouble.applyAsInt(3);
        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, IntUnaryOperator can be used to apply discounts to product prices.

import java.util.function.IntUnaryOperator;

public class DiscountCalculator {
    public static void main(String[] args) {
        // Define an IntUnaryOperator to apply a 10% discount
        IntUnaryOperator applyDiscount = (price) -> (int) (price * 0.9);

        int discountedPrice = applyDiscount.applyAsInt(100);
        System.out.println("Discounted Price: " + discountedPrice);
    }
}

Output:

Discounted Price: 90

Conclusion

The IntUnaryOperator interface is a practical tool in Java for transforming int values. It is particularly useful for mathematical calculations and data processing. Using IntUnaryOperator 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