ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 如何在 java 中按值对`TreeMap`进行排序 > 原文: [https://beginnersbook.com/2014/07/how-to-sort-a-treemap-by-value-in-java/](https://beginnersbook.com/2014/07/how-to-sort-a-treemap-by-value-in-java/) [`TreeMap`](https://beginnersbook.com/2013/12/treemap-in-java-with-example/)总是根据其键进行排序,但是如果你想根据它的值对它进行排序,那么你可以使用比较器来构建一个逻辑。下面是按值排序`TreeMap`的完整代码。 ```java import java.util.*; class TreeMapDemo { //Method for sorting the TreeMap based on values public static <K, V extends Comparable<V>> Map<K, V> sortByValues(final Map<K, V> map) { Comparator<K> valueComparator = new Comparator<K>() { public int compare(K k1, K k2) { int compare = map.get(k1).compareTo(map.get(k2)); if (compare == 0) return 1; else return compare; } }; Map<K, V> sortedByValues = new TreeMap<K, V>(valueComparator); sortedByValues.putAll(map); return sortedByValues; } public static void main(String args[]) { TreeMap<String, String> treemap = new TreeMap<String, String>(); // Put elements to the map treemap.put("Key1", "Jack"); treemap.put("Key2", "Rick"); treemap.put("Key3", "Kate"); treemap.put("Key4", "Tom"); treemap.put("Key5", "Steve"); // Calling the method sortByvalues Map sortedMap = sortByValues(treemap); // Get a set of the entries on the sorted map Set set = sortedMap.entrySet(); // Get an iterator Iterator i = set.iterator(); // Display elements while(i.hasNext()) { Map.Entry me = (Map.Entry)i.next(); System.out.print(me.getKey() + ": "); System.out.println(me.getValue()); } } } ``` **输出:** ```java Key1: Jack Key3: Kate Key2: Rick Key5: Steve Key4: Tom ```