515. Что такое лямбда-выражения? Как эта функция изменила способ написания кода на Java? Объясните с некоторыми примерами до Java 8 и после Java 8? Лямбда-выражения - это новый способ определения анонимных функций в Java 8. Лямбда-выражения представляют собой короткую запись для определения метода, который можно передать как параметр другому методу. До Java 8, для передачи функциональности как параметра в методы использовались анонимные классы. Например, чтобы отфильтровать список строк по длине до Java 8, можно было написать следующий код: List<String> list = Arrays.asList("a", "ab", "abc", "abcd", "abcde");
List<String> filteredList = filter(list, new Predicate<String>() {
@Override public boolean test(String s) {
return s.length() == 3;
}
});
public static <T> List<T> filter(List<T> list, Predicate<T> p) {
List<T> filteredList = new ArrayList<>();
for (T t : list) {
if (p.test(t)) {
filteredList.add(t);
}
}
return fil