區別 stream().filter和stream().map,簡單的不要不要的
阿新 • • 發佈:2022-04-10
區別 stream().filter和stream().map,簡單的不要不要的
來源: 沛沛老爹
作者:沛沛老爹
簡介 這篇文章主要介紹了區別 stream().filter和stream().map,簡單的不要不要的以及相關的經驗技巧,文章約1732字,瀏覽量435,點贊數4,值得參考!
用到stream特性的情況。一般是在List的操作上。
用List的操作,一般都是獲取子集(匹配)或者獲取其中某些制定項的操作會比較多。
例如從一個List<T>中獲取滿足條件的子集。一般我們都會用 stream().filter和stream().map來處理。
這兩個用的比較多,有些同學還會遇到用著用著就迷糊了:
到底什麼時候用什麼?這兩個又有什麼區別呢?
下面我們簡單來上個程式碼。
1、先上個砧板上的肉肉(List):
@Data //Lombok public Class person{ private Integer age; private String name; } /* * 填充資料省略? */ public Class personTest{ public static void main(String[] args){ List<Person> persons = new ArraryList<>(); for(int i =0 ;i<5;i++){ Person person = new Person(); person.setAge(i); person.setname("姓名_"+i.toString()); } } }
2、測試下filter
private void testFilter(List<Person> persons){
List<Person> childPersons = persons.stream().filter(e-e>getAge.equals(1)).collect(Collectors.toList());
}
3、測試下map:
private void testMap(List<Person> persons){ List<Age> childPersons = persons.stream().filter(Person::getAge).collect(Collectors.toList()); }
其實在上面的示例中,大家就可以很清楚的觀察到Filter和Map的區別了。
一個是型別不變,一個是改變了型別。
以上就是本文的全部內容,希望對大家的學習有所幫助,本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本宣告。 原文地址:https://blog.csdn.net/m290345792/article/details/119990098
https://www.136.la/nginx/show-186059.html