Gymterview
junior

Для чего нужен функциональный интерфейс BiFunction?

BiFunction<T, U, R> — функциональный интерфейс, принимающий два аргумента типов T и U и возвращающий результат типа R. Основной метод — apply(T t, U u).

Этот интерфейс используется, когда для вычисления результата требуется два входных значения. Пример — метод Map.replaceAll(), который принимает BiFunction<K, V, V> для замены всех значений в карте:

Пример
Map<String, Integer> map = new HashMap<>(Map.of("a", 1, "b", 2));
map.replaceAll((key, value) -> value * 10);
// {a=10, b=20}

BiFunction содержит default-метод andThen() для цепочки с последующим Function. BinaryOperator<T> является частным случаем BiFunction<T, T, T>.

На собеседовании: упомяните связь с BinaryOperator — это покажет понимание иерархии функциональных интерфейсов.