Java 8 - Примеры цикла forEach

Java 8 предоставляет дополнительные возможности и новые способы просмотра веб-страниц. Существуют сценарии, в которых эти новые концепции являются более производительными и рекомендуемыми.

Большинство функций Java 8 сосредоточены на лямбда-выражениях, а также связанных с ними функциях, таких как потоки, методы и интерфейсы. Еще одной особенностью Java 8 является forEach.

forEach() может быть реализован так, чтобы быть быстрее, чем цикл for-each, в Java 8 интерфейс iterable использует наиболее оптимизированный метод обхода элементов по сравнению со стандартным методом traversing.

В этой статье вы узнаете, как выполнять итерацию по java.util.List и java.util.Map с новым циклом forEach java 8.

forEach и java.util.Map

Этот код показывает обычный способ просмотра Map:

Map map = new HashMap< > (); 
map.put(1, "A");
map.put(2, "B");
map.put(3, "C");
map.put(4, "D");
map.put(5, "E");

for (Map.Entry entry : map.entrySet()) {
System.out.println("Ключ: " + entry.getKey() + " Значение: " + entry.getValue());
}
В Java 8 можно просмотреть Map с циклом forEach и лямбдой.

Map map = new HashMap< > (); 
map.put(1, "A");
map.put(2, "B");
map.put(3, "C");
map.put(4, "D");
map.put(5, "E");

items.forEach((k,v)-> System.out.println("ключ: " + k + " Значение: " + v));

items.forEach((k,v)->{
System.out.println("ключ: " + k + " Значение: " + v);
if("D".equals(v)){
System.out.println("D");
}
});

forEach и java.util.List

В этом примере кода показан обычный просмотр с for:

List arraylist = new ArrayList< > (); 
arraylist.add("A");
arraylist.add("B");
arraylist.add("C");
arraylist.add("D");
arraylist.add("E");
arraylist.add("F");

for(String val : arraylist){
System.out.println(val);
}
В Java 8 можно просмотреть List с forEach лямбда-выражение или ссылка на метод.

List arraylist = new ArrayList< > (); 
arraylist.add("AB");
arraylist.add("BC");
arraylist.add("CD");
arraylist.add("DE");
arraylist.add("EF");
arraylist.add("FG");

//lambda
arraylist.forEach(item-> System.out.println(элемент));

arraylist.forEach(item->{
if("D".equals(item)){
System.out.println(item);
}
});

//метод reference
arraylist.forEach(System.out::p rintln);

//Создаем фильтр с помощью stream()
//он должен показать CD output
arraylist.stream()
.filter(s-> s.contains("CD"))
.forEach(System.out::p rintln);
References:
Javadoc: Java 8 - forEach