Java8专题五(上)《使用流》

本文详细介绍了Java8中的流操作,包括筛选与切片、映射、排序、查找与匹配、Optional的使用以及归约操作,通过实例展示了如何找到最大值和最小值。这些内容有助于理解Java8的流处理能力。
摘要由CSDN通过智能技术生成

目录

1、筛选与切片

2、映射

3、排序

4、 查找与匹配

5、简介Optional

6、归约

6.1 最大值,最小值


1、筛选与切片

筛选与切片
方法 描述
filter 接收 Lambda , 从流中排除某些元素。
limit 截断流,使其元素不超过给定数量。
skip 跳过元素,返回一个扔掉了前 n 个元素的流。若流中元素不足 n 个,则返回一个空流。与 limit(n) 互补
distinct 筛选,通过流所生成元素的 hashCode() 和 equals() 去除重复元素

例子:

//filter:过滤
menu.stream().filter(Dish::isVegetarian).collect(toList());

//limit:截断
 menu.stream().limit(3).collect(toList());

//skip:跳过
 menu.stream().skip(2).collect(toList());

//distinct:去掉重复(取决于hashCode() 和 equals()的算法) 
List<Integer> numbers = Arrays.asList(1, 2, 1, 3, 3, 2, 4);
numbers.stream()
        .filter(i -> i % 2 == 0)
        .distinct()
        .forEach(System.out::println);
 
//结果:
2
4

2、映射

映射
方法 描述
map 接收 Lambda , 将元素转换成其他形式或提取信息。接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。
flatMap 流的扁平化;接收一个函数作为参数,将流中的每个值都换成另一个流,然后把所有流连接成一个流

例子:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值