1322. Какие существуют функциональные фичи в Java
Java предоставляет несколько функциональных фич, которые были введены в различных версиях языка. Вот некоторые из них:
- Лямбда-выражения: Лямбда-выражения позволяют передавать функции в качестве параметров или использовать их в качестве значений. Они представляют собой компактный способ определения анонимных функций. Пример:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(n -> System.out.println(n));
- Функциональные интерфейсы: Функциональные интерфейсы - это интерфейсы, которые содержат только один абстрактный метод. Они используются вместе с лямбда-выражениями для создания экземпляров функциональных объектов. Пример:
@FunctionalInterface interface Converter<F, T> {
T convert(F from);
}
- Stream API: Stream API предоставляет возможность работать с коллекциями данных в функциональном стиле. Он позволяет выполнять операции над элементами коллекции, такие как фильтрация, сортировка, отображение и другие. Пример:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream()
.filter(n -> n % 2 == 0)
.mapToInt(n -> n)
.sum();
- Методы по умолчанию в интерфейсах: В Java 8 была добавлена возможность определения методов по умолчанию в интерфейсах. Это позволяет добавлять новые методы в существующие интерфейсы без необходимости изменения всех реализаций. Пример:
interface MyInterface {
default void myMethod() {
System.out.println("Default method");
}
}
- Optional: Optional - это контейнер, который может содержать или не содержать значение. Он предоставляет удобные методы для работы с возможным отсутствием значения, такими как проверка наличия значения, получение значения или выполнение действия, если значение отсутствует. Пример:
Optional<String> name = Optional.ofNullable(getName());
name.ifPresent(n -> System.out.println("Name: " + n));
Если вам понравилось, буду признателен за подписку.