РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
515 of 1163 menu

Класс Function

Класс Function - это функциональный интерфейс из пакета java.util.function, который представляет функцию, принимающую один аргумент типа T и возвращающую результат типа R. В первом параметре (при вызове метода apply) мы передаем входное значение, а на выходе получаем преобразованный результат. Интерфейс часто используется в stream-операциях, например, в методе map.

Синтаксис

@FunctionalInterface public interface Function<T, R> { R apply(T t); }

Пример

Давайте создадим функцию, которая принимает строку и возвращает ее длину:

import java.util.function.Function; public class Main { public static void main(String[] args) { Function<String, Integer> func = str -> str.length(); System.out.println(func.apply("abcde")); } }

Результат выполнения кода:

5

Пример

Давайте используем Function вместе с методом map для преобразования элементов потока:

import java.util.List; import java.util.function.Function; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<String> list = List.of("a", "b", "c", "d", "e"); Function<String, String> func = str -> str.toUpperCase(); List<String> res = list.stream() .map(func) .collect(Collectors.toList()); System.out.println(res); } }

Результат выполнения кода:

[A, B, C, D, E]

Пример

Давайте скомбинируем две функции с помощью метода andThen - сначала возведем число в квадрат, а затем преобразуем результат в строку:

import java.util.function.Function; public class Main { public static void main(String[] args) { Function<Integer, Integer> square = n -> n * n; Function<Integer, String> toStr = n -> "Result: " + n; Function<Integer, String> combined = square.andThen(toStr); System.out.println(combined.apply(5)); } }

Результат выполнения кода:

"Result: 25"

Смотрите также

  • метод apply,
    который применяет функцию к аргументу
  • метод andThen,
    который объединяет две функции последовательно
  • метод compose,
    который объединяет две функции в обратном порядке
  • метод map,
    который преобразует элементы потока с помощью функции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить