3. Java8 Stream 操作

本文详细介绍Java Stream API的核心操作,包括筛选与切片、映射及排序等高级功能,通过实例演示如何使用filter、map、flatMap、sorted等方法进行数据处理,适合Java开发者深入学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、筛选与切片

方法描述
filter接收 Lambda , 从流中排除某些元素。
limit截断流,使其元素不超过给定数量。
skip(n)跳过元素,返回一个扔掉了前 n 个元素的流。若流中元素不足 n 个,则返回一个空流。与 limit(n) 互补
distinct筛选,通过流所生成元素的 hashCode() 和 equals() 去除重复元素
  1. filter:过滤
emps.stream().filter(e -> e.getAge() > 35).forEach(System.out::println);
  1. limit:截断
emps.stream().limit(3).forEach(System.out::println);

3.skip:跳过

emps.stream().skip(2).forEach(System.out::println);

4.distinct:去掉重复(取决于hashCode() 和 equals()的算法)

emps.stream().distinct().forEach(System.out::println);

二、映射

方法描述
map接收 Lambda , 将元素转换成其他形式或提取信息。接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。
flatMap接收一个函数作为参数,将流中的每个值都换成另一个流,然后把所有流连接成一个流
List<String> strList = Arrays.asList("123", "456", "789", "abc", "def");
//转换为大写
strList.stream().map(String::toUpperCase).forEach(System.out::println);
//字符串截取
strList.stream().map(e->e.substring(1)).forEach(System.out::println);

三、排序

方法描述
sorted()自然排序
sorted(Comparator com)定制排序
  1. 自然排序
strList.stream().sorted().forEach(System.out::println);
  1. 定制排序
  • 例1:
emps.stream().sorted((e1, e2) -> e1.getStatus().compareTo(e2.getStatus())).forEach(System.out::println);
  • 例2:
        emps.stream().sorted((x,y)->{
            if (x.getAge()==y.getAge()){
                return x.getName().compareTo(y.getName());
            }else {
                return Integer.compare(x.getAge(), y.getAge());
            }
        }).forEach(System.out::println);

会根据compare方法的返回值排序,改变顺序,需把两个比较的参数调换位置即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值