java stream 去重_尝鲜Stream,真香

  • 前言

Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。

  • 什么是Stream
de7f2d6bcafb43fe86c8607ef2f93d6b

流的过程

Stream(流)是一个来自数据源的元素队列并支持聚合操作。

数据源 可以是集合,数组,I/O channel, 产生器generator 等;

聚合操作 类似SQL语句一样的操作, 比如filter, map, reduce, find, match, sorted等;

  • 如何使用Stream

talk is cheap,show me the code;废话不多说,边看代码边学

1.生成流:直接通过Stream.of()构造,或者集合通过 .stream()

Stream stream = Stream.of("apple","apple", "banana", "orange"); // 下文将以此为例子//集合生成流Stream stream1 = list.stream();// 这种是并行流,有些情况下会提升数据处理速度Stream stream2 = list.parallelStream();

2. 使用流

//遍历 forEach 操作 stream.forEach(e -> System.out.println(e)); // apple banana orange
//遍历 forEach 操作 stream.forEach(e -> System.out.println(e)); // apple banana orange// map 操作,可以将二维数据转成一维的,比如只需要实体中某个属性,开发中经常用到Stream.map(e -> e.length) //转成单词的长度 int                .forEach(System.out::println);
// map 可以将二维数据转成一维的,比如只需要实体中某个属性,开发中经常用到Stream.map(String::length) //转成单词的长度 int                .forEach(System.out::println);  //5,5,6,6
//filter 过滤某些不符合条件的元素stream.filter(e -> e.equals("apple")).forEach(e -> System.out.println(e)); // apple,apple
//distinct 去重stream.distinct().forEach(e -> System.out.println(e)); //apple,banana ,orange
//sorted 排序 底层依赖Comparable 实现,也可以提供自定义比较器stream.sorted().forEach(e -> System.out.println(e)); // apple,apple,banana ,orange
//collect 收集,使用系统提供的收集器可以将最终的数据流收集到List,Set,Map等容器中List collect = stream.collect(Collectors.toList()); collect.forEach(e -> System.out.println(e));//apple,apple,banana ,orange
  • 总结

上面笔者只是简单的介绍了常用流的几种方法,还有一些方法和更复杂的杂糅操作之后再介绍,今天只是让小伙伴有一个对流的认识。好了,今天就到这里了,喜欢的小伙伴点个关注吧[奋斗]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值