Java8中Stream简单使用整理

Stream 流

流可以让人以一种声明的方式处理数据,流在管道中传输,并且可以在管道的节点上进行处理,筛选、排序、聚合等。
元素在管道中经过中间操作处理,最后由最红操作得到前面处理的结果。
流是一个来自数据源的元素列表并指出聚合操作。

1.生成流

  • stream():为集合创建串行流
  • parallelStream():为集合创建并行流

2、foreach

stream可以用foreach来迭代流中的数据

List<Integer> list = Arrays.asList(1, 2, 3);
list.forEach(System.out::println);

3、map

map 用于映射每个元素到对应的结果

List<Integer> num = Arrays.asList(1, 2, 4, 5);
List<Integer> numm = num.Stream().map(m -> m*m).collect(Colloctors.toList());

4、filter

filter 用于通过设置条件过滤出元素

List<String> strList= Arrays.asList("a", "", "c", "v");
List<String> list = strList.Stream().filter(s -> !s.isEmpty()).collect(Colloctors.toList());

5、limit & skip

limit 用于获取指定数量的流
skip 跳过元素返回一个抛弃了前几个元素的流,若流中蒜素不满足n个,则返回空流 与limit互补

List<String> strList= Arrays.asList("a", "", "c", "v");
List<String> list = strList.Stream().filter(s -> !s.isEmpty()).limit(2).collect(Colloctors.toList());

6、sorted

sorted 用于对流进行排序

7、collectors

collectors 实现了归约操作,eg:将流转换成集合
collectors 可用于返回列表或字符串

List<String> strList= Arrays.asList("a", "", "c", "v");
List<String> list = strList.Stream().filter(s -> !s.isEmpty()).limit(2).collect(Colloctors.toList());

8、统计

有一些产生统计结果的收集器,主要用于 int、double、long 等基本类型

List<Integer> nums = Arrays.asList(1, 2, 3, 4);
IntSummaryStatistics statistics = nums.stream().mapToInt(x -> x * 2).summaryStatistics();
System.out.println(statistics);

9、distinct

distinct 筛选通过流所生成元素的hashCode() 和equals()去除重复元素
ps:自定义实体的蛆虫需要重写两个方法

10、reduce

reduce 归约,可以将流中元素反复结合起来得到一个值,返回T,eg:求和

 List<Integer> list = Arrays.asList(2, 4, 6, 9);  
 Integer reduce =  list.stream().reduce(0, (x, y) -> x + y);

11、count

count 可以返回流中元素的总数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值