学习笔记------StreamAPI的使用

本文分享了对StreamAPI在提高开发效率方面的体验,强调了其优点如简洁性,但也指出其在调试上的困难。作者通过实例展示了如何使用`collect`、`filter`和`map`方法进行数据转换,包括List转Map、Map转换和数组去重等操作。
摘要由CSDN通过智能技术生成

Stream API 很强大,也很简洁,可以极高的开发效率,但也有不好debug的短板,以下是我的学习心得,记录下,方便以后查阅

collect():将元素收集到集合中
filter():过滤 Stream 中的数据
map():将 Stream 中的每一个元素转换成另一个对象
mapToInt/mapToLong/mapToDouble: 将流中的元素转换为int、long、double
max/min:获取流中的最大/小值
anyMatch/allMatch/noneMatch: 检查流中是否有元素满足条件
sorted:流中的元素进行排序
takeWhile: 如果流中的元素不满足条件,则直接结流操作。

// 将List转换为Map
Map<Long, String> map = testList
                .stream()
                .filter(i -> i != null)
                .collect(Collectors.toMap(Test::getId, Test::getName));

Map<String, Test> map = testList.stream()
                .collect(Collectors.toMap(Test::getCategoryId, test -> test));

// 转换为list
List<String> paths = testList.stream()
				// 将list转换为name/id的样式
                .map(v -> String.format("%s/%s", v.getName(), v.getId()))
                // 转换为list
                .collect(Collectors.toList());

// 将数组中元素的值取出,并去重
// 集合去空
Set<String> codeSet = codeList.stream()
		// 过滤空元素
        .filter(o -> !StringUtils.isEmpty(o.getCode()))
        // 将集合中的元素转换为实体类的code
        .map(CodeDto:: getCode)
        // 将集合转换为set
        .collect(Collectors.toSet());
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值