java - 如何从 LinkedHashMap 中按升序获取值

标签 java sorting collections treemap linkedhashmap

我在 LinkedHashMap 中使用返回键值对的函数。

LinkedHashMap<Integer,String> lhm = new LinkedHashMap<Integer,String>();

  // Put elements to the map
  lhm.put(10001, "Stack");
  lhm.put(10002, "Heap");
  lhm.put(10003, "Args");
  lhm.put(10004, "Manus");
  lhm.put(10005, "Zorat");

Note: I cannot change LinkedHashMap to any other map in my code as the function is being used in several other functions.

我还用谷歌搜索并尝试使用 TreeMap,它按升序为我们提供了所需的结果。但是,这里的 TreeMap 键是按升序排列的,而不是值。

我的要求主要是值(value)观。

如何按升序获取值。

Desired Output

10003, "Args"
10002, "Heap"
10004, "Manus"
10001, "Stack"
10005, "Zorat"

提前谢谢你!!!!

最佳答案

为此你需要一个比较器

  Comparator<Entry<String, String>> valueComparator = new 
                                  Comparator<Entry<String,String>>() { 
  @Override public int compare(Entry<String, String> e1, Entry<String, 
     String> e2) { 

     String v1 = e1.getValue(); String v2 = e2.getValue(); return 
     v1.compareTo(v2); 
 } 
};

关于java - 如何从 LinkedHashMap 中按升序获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43777478/

相关文章:

c# - 同步收集线程安全

java - 在Java中,有一个集合,我只能在一段时间后才能获取元素?

java - 从服务器端代码访问受安全约束保护的 servlet

java - 在Eclipse中删除磁盘上的项目内容之前,如何在删除参与者中执行操作?

java - 如何在 JSP 上将 Map 的键放入 <select> 中

php - 数据表:按纪元时间排序

Java - AAC MP4 - 如何获取媒体长度?

javascript - Javascript 中的转置

python - 用另一个列表对元组列表进行排序

java - EnumSet 的不可变版本