Лямбды в массы (о нововведениях в java 8)
Лямбды — одно из самых значимых нововведение в java 8.
Для начала разберемся с итераторами.
При использовании внешних итераторов программист учитывает общее количество записей и проходит по ним. У вас есть итератор и шаг итерации.
Внутренние итераторы управляют итерациями в фоновом режиме. Когда вы передаете объект функции методу, выполняемому над списком, это внутренний итератор.
Возьмем для примера список
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
1. Пробежимся по списку и выведем его на экран используя цикл
for
System.out.println("Using foreach loop (external iterator)")
for (int i = 0; i < numbers.size(); i++) {
System.out.println(numbers.get(i));
}
2. используя
for each
System.out.println("Using lambdas <i><b>for each</b></i> (external iterator)");
for(int e:numbers){
System.out.println(e);
}
3. Для той же задачи используем интерфейс
Consumer
numbers.forEach(new Consumer<Integer>() {
@Override
public void accept(Integer value) {
System.out.println(value);
}
});
4. Используя
лямбды
numbers.forEach(n -> System.out.println(n));
5. И попробуем
распараллелить наш вывод
System.out.println("Using lambdas for each (external iterator) + parallel");
people.parallelStream().forEach(p -> System.out.println(p));