Передать функцию в качестве параметра в другую функцию можно разными способами. Рассмотрим некоторые из них. import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;
public class App {
public static void main(String[] args) {
List<String> list1 = List.of("1", "22", "333", "4444");
List<String> filteredList1 = filterList(list1, x -> x.length() >= 3);
System.out.println(filteredList1); // => [333, 4444]
List<Integer> list2 = List.of(1, 2, 3, 4);
List<Integer> filteredList2 = filterList(list2, x -> x >= 3);
System.out.println(filteredList2); // => [3, 4] }
public static <T> List<T> filterList(List<T> list, Predicate<T> rool) {
return list.stream()
.filter(x -> rool.test(x))
.collect(Collectors.toList());
}
} 2. Воспользуемся готовым функциональным интерфейсом UnaryOperator : public static void superMethod(UnaryOperator<String> method) {