java8--Stream的flatmap與map異同的理解


 大綱:

  1. 異同點
  2. 示例

 

一、異同點

他們的相同點是接收的入參都是一個function。

不同點這個入參function的返回不同。map返回一個對象,flatmap返回一個stream。

這就使得map是一對一的處理,得到的stream中元素的數量和原始數量一致,而flatmap返回stream這就使得flatmap可以具備一對多的處理能力。最后這個function的stream匯聚到一個stream中,數量可以多於原始元素的數量。

 

二、示例

    public static void main(String[] args) {
        List<String> list = Arrays.asList("a1","a2","a3");
        list.stream().map(s->s+"test").forEach(System.out::println);//一對一的處理,在每個字符串后面加上test輸出
        list.stream().flatMap(s -> Stream.of(s.split(""))).forEach(System.out::println);//一對多的處理,把每個字符串拆成一個個字符,輸出,這點map就無法做到。
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM