[英]Sorting a List inside a complex map
我需要幫助,我找不到解決此任務的方法。
我通過以下方式從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()))
))));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.