hashmap 的排序值
Sort value of hashmap
我有以下 hashmap
如下所示:
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 4);
map.put("b", 9);
map.put("c", 1);
我想根据它们的值对 hashmap 进行排序,它应该给出如下输出:
[1, 4, 9]
这可以使用比较器吗?
更新:Link提供的没有提供解决方案,我试过解决方案,创建的hashmap无法通过key遍历。
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 4);
map.put("b", 9);
map.put("c", 1);
List<Integer> l = new ArrayList<Integer>(map.values());
l.sort(null);
System.out.println(l);
此代码会根据您的需要提供输出。
A Java 8 正在收集流的解决方案 Map
:
Map<String, Integer> map = new HashMap<>();
map.put("a", 4);
map.put("b", 9);
map.put("c", 1);
Map<String, Integer> orderedByValueMap =
map.entrySet().stream()
.sorted(Comparator.comparing(Map.Entry::getValue))
.collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue,
(o1, o2) -> o1, LinkedHashMap::new));
System.out.println(orderedByValueMap);
输出:{c=1, a=4, b=9}
我有以下 hashmap
如下所示:
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 4);
map.put("b", 9);
map.put("c", 1);
我想根据它们的值对 hashmap 进行排序,它应该给出如下输出:
[1, 4, 9]
这可以使用比较器吗?
更新:Link提供的没有提供解决方案,我试过解决方案,创建的hashmap无法通过key遍历。
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 4);
map.put("b", 9);
map.put("c", 1);
List<Integer> l = new ArrayList<Integer>(map.values());
l.sort(null);
System.out.println(l);
此代码会根据您的需要提供输出。
A Java 8 正在收集流的解决方案 Map
:
Map<String, Integer> map = new HashMap<>();
map.put("a", 4);
map.put("b", 9);
map.put("c", 1);
Map<String, Integer> orderedByValueMap =
map.entrySet().stream()
.sorted(Comparator.comparing(Map.Entry::getValue))
.collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue,
(o1, o2) -> o1, LinkedHashMap::new));
System.out.println(orderedByValueMap);
输出:{c=1, a=4, b=9}