java8 流式处理(1)

本文详细介绍如何使用Java Stream API进行数据转换,包括将List转换为Map,List内元素的去重、排序及筛选操作。通过具体代码示例,深入浅出地讲解Stream API在实际开发中的应用技巧。

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

1、把list集合转换成Map

List<OrgResponDetail> oldDetails = new ArrayList();
Map<String,OrgResponDetail> map = oldDetails.stream()
.collect(Collectors.toMap(temp -> temp.getId(), temp -> temp));

Map<String,String> map = oldDetails.stream() .collect(Collectors.toMap(OrgResponDetail::getId,OrgResponDetail::getParentId));

2、把list转换为list
List<String> detailIds = list.stream()
.map(temp -> temp.getId()).collect(Collectors.toList());

//filter方法里的条件是作为筛选条件
List<Scheduling> resultList = list.stream()
.filter(distinctByKey(temp -> temp.getOrgId())).collect(Collectors.toList());

public static <T> Predicate<T> distinctByKey
(Function<? super T, Object> keyExtractor) {
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}

3、去重distinct()
List<String> oldDetails = new ArrayList();
List<String> list = list.stream().distinct().collect(Collectors.toList());

4、排序
//根据orders升序sorted方法
List itemVoList = list.stream().sorted(Comparator.comparing(DicGroupItemVo::getOrders))
.collect(Collectors.toList());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值