我需要帮助,我无法找到一个方法来解决这个任务..
我创造了这个地图在下面的方式一个ArrayList:
Map<RamiBean, Map<String, Map<String, List<AllertaBean>>>> complexMap = allerte.stream()
.distinct()
.collect(Collectors.groupingBy(
ab -> ab.getRamoBean(),
Collectors.groupingBy(ab -> ab.getPuntoBean().getNomePunto(),
Collectors.groupingBy(AllertaBean::getDescAllerta))));
我的问题是,我需要组ab.getPuntoBean().getNomePunto()
第二级,但我我想有这个小组由另一场/法下令:ab.getPuntoBean().getKm()
尝试这个
Map<RamiBean, Map<String, Map<String, List<AllertaBean>>>> complexMap = allerte.stream()
.distinct()
.collect(Collectors.groupingBy(
ab -> ab.getRamoBean(),
Collectors.groupingBy(ab -> ab.getPuntoBean().getNomePunto(),
Collectors.toMap(
AllertaBean::getDescAllerta,
ab -> new ArrayList(Arrays.asList(ab)),
(abList1, abList2) -> {
abList1.addAll(abList2);
abList1.sort(Comparator.comparing(ab -> ab.getPuntoBean().getKm()))
return abList1;
}
)
)
));
这还是一个
Map<RamiBean, Map<String, Map<String, List<AllertaBean>>>> complexMap = allerte.stream()
.distinct()
.collect(Collectors.groupingBy(
ab -> ab.getRamoBean(),
Collectors.groupingBy(ab -> ab.getPuntoBean().getNomePunto(),
Collectors.groupingBy(AllertaBean::getDescAllerta,
Collectors. collectingAndThen(Collectors.toList(),
abList -> abList.sort(Comparator.comparing(ab -> ab.getPuntoBean().getKm()))
))));