Map<String, Map<String, List<TodayTradeInfoDto>>>根据map中的对象字段排序
时间: 2023-10-14 14:19:38 浏览: 92
要对 Map<String, Map<String, List<TodayTradeInfoDto>>> 中的对象进行排序,需要明确一下排序的依据,比如按照 TodayTradeInfoDto 中的某个属性排序。下面以 TodayTradeInfoDto 中的 tradeTime 属性为例,给出一个排序的示例代码:
```java
public static Map<String, Map<String, List<TodayTradeInfoDto>>> sortMapByTradeTime(Map<String, Map<String, List<TodayTradeInfoDto>>> tradeInfoMap) {
// 用于存放排序结果的 TreeMap
TreeMap<String, Map<String, List<TodayTradeInfoDto>>> sortedMap = new TreeMap<>();
// 遍历原始的 tradeInfoMap,将每个 key-value 键值对存入到 sortedMap 中
for (Map.Entry<String, Map<String, List<TodayTradeInfoDto>>> entry1 : tradeInfoMap.entrySet()) {
String key1 = entry1.getKey();
Map<String, List<TodayTradeInfoDto>> value1 = entry1.getValue();
TreeMap<String, List<TodayTradeInfoDto>> sortedValue1 = new TreeMap<>();
for (Map.Entry<String, List<TodayTradeInfoDto>> entry2 : value1.entrySet()) {
String key2 = entry2.getKey();
List<TodayTradeInfoDto> value2 = entry2.getValue();
List<TodayTradeInfoDto> sortedValue2 = value2.stream()
.sorted(Comparator.comparing(TodayTradeInfoDto::getTradeTime))
.collect(Collectors.toList());
sortedValue1.put(key2, sortedValue2);
}
sortedMap.put(key1, sortedValue1);
}
// 返回排序结果
return sortedMap;
}
```
这里用到了 Java 中的 TreeMap,它会按照 key 的自然顺序进行排序。对于内层的 Map,我们也需要将它转换成 TreeMap,并指定排序的方式。这里用到了 Java 8 中的流式编程,对 List 中的元素按照 tradeTime 属性排序。最后将排序结果存入到 sortedMap 中并返回即可。
阅读全文