java8 forEach結(jié)合Lambda表達(dá)式遍歷 List操作
我就廢話不多說了,大家還是直接看代碼吧~
@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 + 拉姆達(dá)表達(dá)式遍歷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("單獨(dú)的 forEach 寫法=========="); //單獨(dú)的 forEach 寫法 Consumer consumer = new Consumer<String>() { @Override public void accept(String s) { System.out.println(s); } }; items.forEach(consumer); System.out.println("forEach結(jié)合Lambda寫法=========="); //輸出 A,B,C,D,E items.forEach(s -> { System.out.println(s); }); System.out.println("forEach結(jié)合Lambda寫法,添加過濾條件=========="); //輸出 C items.forEach((s) -> { if("C".equals(s)){ System.out.println(s); } }); }
補(bǔ)充知識(shí):java8 lambda表達(dá)式之map和foreach的區(qū)別
看 一段代碼:
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()); });
輸出結(jié)果:
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);
輸出結(jié)果:
java.lang.Integer java.lang.Integer java.lang.Integer java.lang.Integer java.lang.Integer [1, 2, 3, 4, 5] [2, 3, 4, 5, 6]
map對(duì)原來的集合操作后返回一個(gè)新的集合。此集合和原集合無(wú)任何關(guān)系,且不會(huì)改變?cè)系娜魏螙|西
foreach操作的是原集合,返回的還是原集合
以上這篇java8 forEach結(jié)合Lambda表達(dá)式遍歷 List操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于TreeMap自定義排序規(guī)則的兩種方式
這篇文章主要介紹了關(guān)于TreeMap自定義排序規(guī)則的兩種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08mybatis中oracle實(shí)現(xiàn)分頁(yè)效果實(shí)例代碼
實(shí)現(xiàn)分頁(yè)的方式有很多,但常用的是通過SQL來顯示分頁(yè)。這篇文章主要介紹了mybatis中oracle實(shí)現(xiàn)分頁(yè)效果實(shí)例代碼,有興趣的可以了解一下。2017-04-04SpringBoot2 集成log4j2日志框架的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot2 集成log4j2日志框架的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10SpringCloud通過Nacos實(shí)現(xiàn)注冊(cè)中心與遠(yuǎn)程服務(wù)調(diào)用詳解流程
如果不滿足eureka注冊(cè)中心,那么本文記錄的Nacos是不二之選。本文主要記錄Springboot基于Nacos實(shí)現(xiàn)注冊(cè)中心以及遠(yuǎn)程服務(wù)調(diào)用2022-07-07javax.net.ssl.SSLException: java.lang.RuntimeException: Coul
這篇文章主要介紹了javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair 解決方法,有需要的朋友們可以學(xué)習(xí)下。2019-08-08