Map<String,Map<String, List<String>>>排序
时间: 2023-07-09 21:21:32 浏览: 54
对于Map<String,Map<String, List<String>>>的排序,可以使用Java 8中的Stream API来实现。具体的代码如下所示:
```java
Map<String,Map<String, List<String>>> map = new HashMap<>();
// 假设已经将map中的值填充完毕
List<Entry<String, Map<String, List<String>>>> entryList = new ArrayList<>(map.entrySet());
// 按照外层Map的key进行升序排序
Collections.sort(entryList, (entry1, entry2) -> entry1.getKey().compareTo(entry2.getKey()));
// 遍历entryList,对每个内层Map中的List进行升序排序
entryList.forEach(entry -> {
List<Entry<String, List<String>>> innerEntryList = new ArrayList<>(entry.getValue().entrySet());
Collections.sort(innerEntryList, (innerEntry1, innerEntry2) -> innerEntry1.getKey().compareTo(innerEntry2.getKey()));
entry.setValue(new LinkedHashMap<>());
innerEntryList.forEach(innerEntry -> {
Collections.sort(innerEntry.getValue());
entry.getValue().put(innerEntry.getKey(), innerEntry.getValue());
});
});
// 将排序后的map输出
entryList.forEach(entry -> System.out.println(entry.getKey() + " : " + entry.getValue()));
```
该代码首先将外层Map转换成Entry对象的List,然后按照外层Map的key进行升序排序。接着,遍历每个Entry对象,将内层Map转换成Entry对象的List,并按照内层Map的key进行升序排序。最后,将内层List进行升序排序,并将结果重新放入内层Map中。最后,将排序后的map输出。