java8Stream map和flatmap的区别

map和flatmap的区别

map只是一维 1对1 的映射

而flatmap可以将一个2维的集合映射成一个一维,相当于他映射的深度比map深了一层 ,

所以名称上就把map加了个flat 叫flatmap




package com.hyc;

import java.util.Arrays;

import java.util.List;

import java.util.stream.Collectors;

public class SreamTest {

public static void main(String[] args) {

/**获取单词,并且去重**/

      List list = Arrays.asList("beijing changcheng", "beijing gugong", "beijing tiantan",

        "gugong tiananmen");

      //map

//map只能将分割结果转成一个List,所以输出为list对象

      list.stream().map(item -> Arrays.stream(item.split(" "))).forEach(System.out::println);

      //如果我们想要每个list里的元素,还需要一层foreach

      list.stream().map(item -> Arrays.stream(item.split(" "))).forEach(n->{

n.forEach(System.out::println);

      });

      System.out.println("************* ");

      //flatmap

//flatmap可以将字符串分割成各自的list之后直接合并成一个List

//也就是flatmap可以将一个2维的集合转成1维度

      list.stream().flatMap(item -> Arrays.stream(item.split(" "))).collect(Collectors.toList()).forEach(System.out::println);

  }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原链接:http://www.cnblogs.com/langtianya/p/3757993.html JDK各...
    把爱放下会走更远阅读 1,137评论 0 10
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,834评论 18 399
  • 平凡日子有阳光,暖暖照进侬心房。 梦幻升腾美妙起,花香彩蝶飘轩窗。
    老槐树阅读 193评论 0 1
  • 今天急匆匆的从老家赶回来 定的早上九点的火车,八点出发,没吃成饭,坐村里的车到市里8点二十,偏偏传智睡着,于是想让...
    关关Steven阅读 166评论 0 0
  • 道可道,非常道。名可名,非常名。无,名天地之始;有,名万物之母。 故,常无,欲以观其妙;常有,欲以观其徼。此两者,...
    玄明言说阅读 743评论 0 2