我有一个HashMap
映射Dimension
(key
)到ArrayList
Integers
(value
)。如何根据HashMap
的{{1}}的大小对此ArrayList
进行排序?
Integers
答案 0 :(得分:0)
我猜你需要根据值的大小从这个HashMap中创建一个sortedMap。
由于HashMap无法维护排序,我使用LinkedHashMap并使用 Java 8(Streams)。
升序:
Map<String, List<Integer>> collect = map.entrySet().stream()
.sorted((entry1, entry2) -> Integer.compare(entry1.getValue().size(), entry2.getValue().size()))
.collect(Collectors.toMap(Entry::getKey, Entry::getValue, (a,b) -> a, LinkedHashMap::new));
对于降序:
Map<String, List<Integer>> collect = map.entrySet().stream()
.sorted((entry1, entry2) -> Integer.compare(entry2.getValue().size(), entry1.getValue().size()))
.collect(Collectors.toMap(Entry::getKey, Entry::getValue, (a,b) -> a, LinkedHashMap::new));