Найти в Дзене
DEBAGanov

Java 1108. Для чего нужны функциональные интерфейсы Function<T,R>, DoubleFunction<R>, IntFunction<R> и LongFunction<R>?

Функциональные интерфейсы Function<T,R>, DoubleFunction<R>, IntFunction<R> и LongFunction<R> предназначены для работы с лямбда-выражениями и представляют функции, которые принимают один или несколько аргументов и возвращают результат.

  • Function<T,R> принимает один аргумент типа T и возвращает результат типа R. Он может использоваться для преобразования объектов одного типа в объекты другого типа.
  • DoubleFunction<R> принимает один аргумент типа double и возвращает результат типа R.
  • IntFunction<R> принимает один аргумент типа int и возвращает результат типа R.
  • LongFunction<R> принимает один аргумент типа long и возвращает результат типа R.

Эти интерфейсы могут использоваться вместе с лямбда-выражениями для определения различных функций, например для преобразования данных, обработки числовых значений и т.д.

Пример использования Function<T,R> в лямбда-выражении:

Function<Integer, Integer> multiplyByTwo = x -> x * 2;
int result = multiplyByTwo.apply(5); // результат: 10

Пример использования IntFunction в лямбда-выражении:

IntFunction<String> intToString = x -> Integer.toString(x);
String result = intToString.apply(5); // результат: "5"

Пример использования DoubleFunction в лямбда-выражении:

DoubleFunction<Integer> roundUp = x -> (int) Math.ceil(x);
int result = roundUp.apply(4.2); // результат: 5

Пример использования LongFunction в лямбда-выражении:

LongFunction<String> longToString = x -> Long.toString(x);
String result = longToString.apply(5000000000L);
// результат: "5000000000"

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov