Java 中使用 Stream 分组和排序,修改 directionMap Value 对原始 planDetailList 的影响
"private List setStopTime(List planDetailList) {\nList result = new ArrayList<>(planDetailList.size());\n//1.设置序号\nMap<Integer, List> directionMap = planDetailList.stream().collect(Collectors.groupingBy(UploadPlanDetail::getDirection, Collectors.collectingAndThen(Collectors.toList(), list -> list.stream().sorted(Comparator.comparing(UploadPlanDetail::getDepartTimeDate)).collect(Collectors.toList()))));\nIntStream.range(0, directionMap.size()).forEach(i -> directionMap.get(directionMap.keySet().toArray()[i]).forEach(obj -> obj.setIndex(i + 1)));\n//todo\nreturn result;\n}\njava 修改directionMap 内value里的字段,原始planDetailList内的值会跟随改变吗"原始planDetailList内的值不会跟随改变。在这段代码中,directionMap是使用planDetailList进行分组操作后得到的一个Map,其中的value是一个经过排序的列表。当对directionMap内的value进行修改时,只会修改directionMap中对应的列表,而不会修改原始的planDetailList列表。
原文地址: https://www.cveoy.top/t/topic/p1JD 著作权归作者所有。请勿转载和采集!