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}