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("單獨的 forEach 寫法==========");
//單獨的 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);
}
});
}
補充知識: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對原來的集合操作后返回一個新的集合。此集合和原集合無任何關(guān)系,且不會改變原集合的任何東西
foreach操作的是原集合,返回的還是原集合
以上這篇java8 forEach結(jié)合Lambda表達(dá)式遍歷 List操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解如何開發(fā)一個MyBatis通用Mapper的輪子
因為一些原因,例如:通用數(shù)據(jù)權(quán)限控制、MyBatis-Plus好像不支持聯(lián)合主鍵等,我們不得不開發(fā)一個MyBatis通用Mapper的輪子。文中的示例代碼講解詳細(xì),需要的可以參考一下2022-12-12
springboot如何解決非controller類引用service的問題
這篇文章主要介紹了springboot如何解決非controller類引用service的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
Java基礎(chǔ)之static關(guān)鍵字的使用講解
這篇文章主要介紹了Java基礎(chǔ)之static關(guān)鍵字的使用講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
MyBatis使用annonation定義類型映射的簡易用法示例
這篇文章主要介紹了MyBatis使用annonation定義類型映射的簡易用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
java中BeanUtils.copyProperties的用法(超詳細(xì))
本文介紹了BeanUtils.copyProperties()方法的使用,包括其功能、用法、注意事項和示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08

