HashMap根据key或value排序(stream流操作)
代码如下:
Map<String, Integer> map = new HashMap<>(); map.put("b", 2); map.put("a", 1); // 根据key排序 map.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEach(System.out::println); // 根据value排序 map.entrySet().stream().sorted(Map.Entry.comparingByValue()).forEach(System.out::println);
结果
注意:如果map没有定义变量接收(没有声明泛型),在使用value排序的时候需要加上泛型。
例如下面这个map是一个List使用stream流分组计数获得的,没有使用变量接收,直接在后面继续操作了,在sorted排序的时候就需要加上泛型