Java_Stream总结

博学谷IT学习技术支持

Stream思想

可以把Stream理解成工厂流水线。
几个瓶子从流水线的起始点开始出发,然后经过过滤掉坏瓶子,然后对好瓶子封开包装,最后收集到箱子里面去。
这个就是流式思想。

流主要有3个步骤

  1. 创建流
    相当于把数据放到流水线上
  2. 对流的中间操作
    可以在流水线上对数据进行多次操作
  3. 流的终结操作
    然后中间操作完后,终结操作只能执行一次。

生成流的方式

单列集合创建流

通过集合的默认方法stream就可以创建流

双列集合创建流

有两种方式:

  1. 通过获取keyset来创建单列流,然后在通过key来访问vaule
  2. 通过获取entry对象来创建单列流,然后可以通过entry获取里面的key和vaule
数组创建流

通过Arrays.stream可以创建数组流

多个同种类型创建流

通过Stream.of方法就可以实现

Stream流的中间操作方法

  1. filter 用来过滤流的数据
  2. limit 用来提取指定数量的数据
  3. skip 用来跳过数据
  4. concat 用来连接两个流的数据
  5. disinct 用来去重数据,需要实现hashcode和equles

Stream的终结操作方法

  1. foreach 用来遍历每个元素
  2. count 用来统计元素个数

Stream的收集操作

流水线把东西处理完后,需要打包这个步骤。这个就相当于流的收集操作。

操作有3个:

  1. 收集成单列List集合
    通过toCollector方法,然后传递Collector.toList()
  2. 收集成双列集合
    通过toCollector方法,然后传递Collector.toMap(),最终有两个参数需要实现。
    1. 用来识别哪个是Key
    2. 用来识别哪个是Value
  3. 收集成单列Set集合
    通过toCollector方法,然后传递Collector.toSet()

Stream案例

已知数组arr1中有如下元素{郭靖,杨康},arr2中有如下元素{黄蓉,穆念慈},使用Stream将二者合并到List集合

代码实现
        String[] arr1={"郭靖","杨康"};
        String[] arr2={"黄蓉","穆念慈"};
        List<String> collect = Stream.concat(Arrays.stream(arr1), 
        Arrays.stream(arr2)).collect(Collectors.toList());
        System.out.println(collect);
打印结果

[郭靖, 杨康, 黄蓉, 穆念慈]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值