junior
Для чего нужны функциональные интерфейсы ToDoubleBiFunction, ToIntBiFunction и ToLongBiFunction?
Эти интерфейсы принимают два аргумента обобщённых типов T и U и возвращают примитивный результат. Они являются специализациями BiFunction, оптимизированными для возврата примитива без автобоксинга.
| Интерфейс | Вход | Выход |
|---|---|---|
ToDoubleBiFunction<T, U> |
T, U |
double |
ToIntBiFunction<T, U> |
T, U |
int |
ToLongBiFunction<T, U> |
T, U |
long |
Пример: вычисление расстояния между двумя точками:
Пример
ToDoubleBiFunction<Point, Point> distance = (a, b) ->
Math.sqrt(Math.pow(b.x - a.x, 2) + Math.pow(b.y - a.y, 2));
На собеседовании: эти интерфейсы спрашивают редко отдельно, но полезно знать принцип:
To_в имени означает, что результат — примитив указанного типа.