java8 forEach結合Lambda表示式遍歷 List操作
阿新 • • 發佈:2020-09-14
我就廢話不多說了,大家還是直接看程式碼吧~
@Test void testJava8ForeachMap() { Map<String,Integer> items = new HashMap<>(); items.put("A",10); items.put("B",20); items.put("C",30); items.put("D",40); items.put("E",50); items.put("F",60); //普通方式遍歷Map for(Map.Entry<String,Integer> entry:items.entrySet()){ System.out.println(entry.getKey()+":"+entry.getValue()); } System.out.println("==================="); //java8 foreach + 拉姆達表示式遍歷Map items.forEach((k,v) -> { System.out.println(k+":"+v); }); } @Test void testJava8ForeachList() { List<String> items = new ArrayList<>(); items.add("A"); items.add("B"); items.add("C"); items.add("D"); items.add("E"); //普通寫法遍歷List for (String item:items){ System.out.println(item); } System.out.println("單獨的 forEach 寫法=========="); //單獨的 forEach 寫法 Consumer consumer = new Consumer<String>() { @Override public void accept(String s) { System.out.println(s); } }; items.forEach(consumer); System.out.println("forEach結合Lambda寫法=========="); //輸出 A,B,C,D,E items.forEach(s -> { System.out.println(s); }); System.out.println("forEach結合Lambda寫法,新增過濾條件=========="); //輸出 C items.forEach((s) -> { if("C".equals(s)){ System.out.println(s); } }); }
補充知識:java8 lambda表示式之map和foreach的區別
看 一段程式碼:
List<String> list = new ArrayList<>(); list.add("a"); list.add("c"); list.add("s"); list.add("b"); list.add("f"); list.forEach(s -> { System.out.println(args.getClass().getTypeName()); });
輸出結果:
java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[]
再看map操作符
List<String> list = new ArrayList<>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); List<Integer> list1 = list.stream().map(s -> { Integer a = Integer.parseInt(s); a = a+1; System.out.println(a.getClass().getTypeName()); return a; }).collect(Collectors.toList()); System.out.println(list); System.out.println(list1);
輸出結果:
java.lang.Integer java.lang.Integer java.lang.Integer java.lang.Integer java.lang.Integer [1,2,3,4,5] [2,5,6]
map對原來的集合操作後返回一個新的集合。此集合和原集合無任何關係,且不會改變原集合的任何東西
foreach操作的是原集合,返回的還是原集合
以上這篇java8 forEach結合Lambda表示式遍歷 List操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。