Для чего используются функциональные интерфейсы Function<T, R>, DoubleFunction<R>, IntFunction<R> и LongFunction<R> в Java?
Answer from AI
sobes.tech AI
Эти интерфейсы используются для представления операций, которые принимают один аргумент и возвращают результат.
-
Function<T, R>: Представляет функцию, которая принимает аргументы типаTи возвращает результат типаR.// Пример использования Function<String, Integer> Function<String, Integer> stringLength = s -> s.length(); int length = stringLength.apply("Hello"); // Результат: 5 -
DoubleFunction<R>: Представляет функцию, которая принимает аргумент типаdoubleи возвращает результат типаR.// Пример использования DoubleFunction<String> DoubleFunction<String> numberToString = d -> "Число: " + d; String text = numberToString.apply(3.14); // Результат: "Число: 3.14" -
IntFunction<R>: Представляет функцию, которая принимает аргумент типаintи возвращает результат типаR.// Пример использования IntFunction<List<Integer>> IntFunction<List<Integer>> createList = size -> { List<Integer> list = new ArrayList<>(); for (int i = 0; i < size; i++) { list.add(i); } return list; }; List<Integer> numbers = createList.apply(5); // Результат: [0, 1, 2, 3, 4] -
LongFunction<R>: Представляет функцию, которая принимает аргумент типаlongи возвращает результат типаR.// Пример использования LongFunction<Date> LongFunction<Date> timestampToDate = timestamp -> new Date(timestamp); Date date = timestampToDate.apply(System.currentTimeMillis()); // Результат: текущая дата
Эти специализированные интерфейсы (DoubleFunction, IntFunction, LongFunction) используются для избежания автоупаковки (autoboxing) при работе с примитивными типами, что может улучшить производительность.