четверг, 17 апреля 2014 г.

Closure


java.util.function

Consumer - функциональный тип, обозначает действие, не возвращает никакого результата.


List<Integer> a = Arrays.asList(1,2,3,4,5,6);
Consumer<Integer> print = x -> { System.out.println(x); };
Predicateфункциональный тип, возвращает true/false используется для фильтрации данных
Predicate<Integer> p = x -> x % 2 == 0; a.stream().filter(p).forEach(print);
Function - замыкание возвращающее результат конкретного типа.
Function<Integer, String> f = x -> {return x % 2 == 0 ? "0" : String.valueOf(x*2); }; 
List<String> b = a.stream().map(f).collect(Collectors.toList());