Map<String, List> collect = list.stream().collect(Collectors.groupingBy(d -> fetchGroupKey(d)));
public static String fetchGroupKey(ScrapSpecial scrapSpecial) {
return scrapSpecial.getMaterialCode().toString() + scrapSpecial.getScrapReason().toString();
}
问题描述:项目Spring版本是3.x,不支持stream()的写法,如何将上面的stream流转变成普通写法。
![](https://profile-avatar.csdnimg.cn/2418efed5e394a2dba32d4704f8dbcc2_weixin_43247456.jpg!4)
Spring3.x不支持stream写法
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- Mike Qin 2023-06-27 15:56关注
可以使用for循环和HashMap来实现,如下:
HashMap<String, List<ScrapSpecial>> collect = new HashMap<>(); for (ScrapSpecial scrapSpecial : list) { String key = fetchGroupKey(scrapSpecial); if (collect.containsKey(key)) { // 如果HashMap中已经存在key对应的集合,则将元素添加到集合中 collect.get(key).add(scrapSpecial); } else { // 如果HashMap中不存在key对应的集合,则创建新的集合并将元素添加进去 List<ScrapSpecial> tempList = new ArrayList<>(); tempList.add(scrapSpecial); collect.put(key, tempList); } } public static String fetchGroupKey(ScrapSpecial scrapSpecial) { return scrapSpecial.getMaterialCode().toString() + scrapSpecial.getScrapReason().toString(); } for (String key : collect.keySet()) { System.out.println(key + ": " + collect.get(key)); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 如何入门学习c语言,单片机
- ¥15 idea 编辑语言的选择
- ¥15 Windows下部署Asmjit
- ¥15 请问双层规划模型的上下层目标函数不一致,是如何保证迭代收敛性的
- ¥15 微信小程序 前端页面内容搜索
- ¥15 cpu是如何判断当前指令已经执行完毕,然后去执行下条指令的
- ¥15 安装visual studio2022时visualstudiosetup启动不了,闪退。问题代号0x0和0x1389
- ¥30 java spring boot2.5.3版本websocket连不上
- ¥15 angular js调外部链接查看pdf
- ¥15 openFOAM DPMFoam