Md *_*lam 9 java sorting java-8 java-stream
我有一个像下面这样的hashmap
Map<String, List<String>> map = new HashMap<>();
map.put("USA", Arrays.asList("CA","IA","IL"));
map.put("India", Arrays.asList("MUM","CAL"));
map.put("Canada", Arrays.asList("TOR"));
Run Code Online (Sandbox Code Playgroud)
我想根据值中升序排列的列表大小对地图进行排序.我该怎么做.有没有很好的方法呢?
Mis*_*sha 17
import static java.util.Comparator.comparingInt;
import static java.util.stream.Collectors.toMap;
Map<String, List<String>> sorted = map.entrySet().stream()
.sorted(comparingInt(e -> e.getValue().size()))
.collect(toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(a, b) -> { throw new AssertionError(); },
LinkedHashMap::new
));
Run Code Online (Sandbox Code Playgroud)
您可以替换HashMap使用LinkedHashMap,如果你发现更易读
| 归档时间: |
|
| 查看次数: |
5666 次 |
| 最近记录: |