中太 2023-06-27 15:43 采纳率: 33.3%
浏览 24
已结题

Spring3.x不支持stream写法

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流转变成普通写法。

  • 写回答

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条)

报告相同问题?

问题事件

  • 系统已结题 7月5日
  • 已采纳回答 6月27日
  • 创建了问题 6月27日

悬赏问题

  • ¥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