java8 forEach結(jié)合Lambda表達(dá)式遍歷 List操作
我就廢話不多說(shuō)了,大家還是直接看代碼吧~
@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");
//普通寫(xiě)法遍歷List
for (String item:items){
System.out.println(item);
}
System.out.println("單獨(dú)的 forEach 寫(xiě)法==========");
//單獨(dú)的 forEach 寫(xiě)法
Consumer consumer = new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
};
items.forEach(consumer);
System.out.println("forEach結(jié)合Lambda寫(xiě)法==========");
//輸出 A,B,C,D,E
items.forEach(s -> {
System.out.println(s);
});
System.out.println("forEach結(jié)合Lambda寫(xiě)法,添加過(guò)濾條件==========");
//輸出 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ì)原來(lái)的集合操作后返回一個(gè)新的集合。此集合和原集合無(wú)任何關(guān)系,且不會(huì)改變?cè)系娜魏螙|西
foreach操作的是原集合,返回的還是原集合
以上這篇java8 forEach結(jié)合Lambda表達(dá)式遍歷 List操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解如何開(kāi)發(fā)一個(gè)MyBatis通用Mapper的輪子
因?yàn)橐恍┰颍纾和ㄓ脭?shù)據(jù)權(quán)限控制、MyBatis-Plus好像不支持聯(lián)合主鍵等,我們不得不開(kāi)發(fā)一個(gè)MyBatis通用Mapper的輪子。文中的示例代碼講解詳細(xì),需要的可以參考一下2022-12-12
MyBatis控制臺(tái)顯示SQL語(yǔ)句的方法實(shí)現(xiàn)
這篇文章主要介紹了MyBatis控制臺(tái)顯示SQL語(yǔ)句的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
springboot如何解決非controller類引用service的問(wèn)題
這篇文章主要介紹了springboot如何解決非controller類引用service的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Java基礎(chǔ)之static關(guān)鍵字的使用講解
這篇文章主要介紹了Java基礎(chǔ)之static關(guān)鍵字的使用講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
MyBatis使用annonation定義類型映射的簡(jiǎn)易用法示例
這篇文章主要介紹了MyBatis使用annonation定義類型映射的簡(jiǎn)易用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
java中BeanUtils.copyProperties的用法(超詳細(xì))
本文介紹了BeanUtils.copyProperties()方法的使用,包括其功能、用法、注意事項(xiàng)和示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08

