Для чего используются функциональные интерфейсы UnaryOperator<T>, DoubleUnaryOperator, IntUnaryOperator и LongUnaryOperator?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Эти функциональные интерфейсы используются для представления унарных операций, которые принимают один аргумент определенного типа и возвращают результат того же типа.
-
UnaryOperator<T>: Принимает аргумент типаTи возвращает результат типаT. Является специализациейFunction<T, T>.java.util.function.UnaryOperator<Integer> increment = x -> x + 1; int result = increment.apply(5); // result = 6 -
DoubleUnaryOperator: Принимает аргумент типаdoubleи возвращает результат типаdouble.java.util.function.DoubleUnaryOperator square = x -> x * x; double result = square.applyAsDouble(2.5); // result = 6.25 -
IntUnaryOperator: Принимает аргумент типаintи возвращает результат типаint.java.util.function.IntUnaryOperator negate = x -> -x; int result = negate.applyAsInt(10); // result = -10 -
LongUnaryOperator: Принимает аргумент типаlongи возвращает результат типаlong.java.util.function.LongUnaryOperator powerOfTwo = x -> 1L << x; long result = powerOfTwo.applyAsLong(3); // result = 8
Они чаще используются при работе с потоками (Stream API) или в качестве параметров методов, когда требуется передать логику преобразования одного значения в другое того же типа. Специализированные версии (Double, Int, Long) предотвращают автобоксинг/анбоксинг при работе с примитивными типами, что повышает производительность.