1. 程式人生 > 其它 >區別 stream().filter和stream().map,簡單的不要不要的

區別 stream().filter和stream().map,簡單的不要不要的

區別 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