Метод apply класса BiFunction
Метод apply класса BiFunction применяет
функцию к двум аргументам и возвращает результат
вычисления. Класс BiFunction является
функциональным интерфейсом и принимает два
входных параметра, а возвращает один результат.
В первый параметр мы передаем первый аргумент
функции, во второй - второй аргумент функции.
Тип возвращаемого значения задается третьим
generic-параметром.
Синтаксис
R apply(T t, U u)
Пример
Давайте создадим BiFunction, которая
складывает два числа, и применим ее к числам
3 и 4:
import java.util.function.BiFunction;
public class Main
{
public static void main(String[] args)
{
BiFunction<Integer, Integer, Integer> sum = (a, b) -> a + b;
int res = sum.apply(3, 4);
System.out.println(res);
}
}
Результат выполнения кода:
7
Пример
Давайте создадим BiFunction, которая
соединяет две строки через дефис, и применим
ее к строкам "abcde" и "12345":
import java.util.function.BiFunction;
public class Main
{
public static void main(String[] args)
{
BiFunction<String, String, String> concat = (a, b) -> a + "-" + b;
String res = concat.apply("abcde", "12345");
System.out.println(res);
}
}
Результат выполнения кода:
"abcde-12345"
Пример
Давайте используем BiFunction вместе
с методом reduce для суммирования всех
элементов потока:
import java.util.List;
import java.util.function.BiFunction;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = List.of(1, 2, 3, 4, 5);
BiFunction<Integer, Integer, Integer> sum = (a, b) -> a + b;
int res = list.stream().reduce(0, sum::apply);
System.out.println(res);
}
}
Результат выполнения кода:
15
Смотрите также
-
класс
BiFunction,
который представляет функцию от двух аргументов -
метод
apply,
который применяет функцию к одному аргументу -
метод
reduce,
который сворачивает элементы потока -
метод
map,
который преобразует элементы потока