Java 集合 TreeMap按值排序

来源:这里教程网 时间:2026-02-17 20:13:37 作者:

TreeMap总是根据其键进行排序,但是如果你想根据它的值对它进行排序,那么你可以使用比较器来构建一个逻辑。下面是按值排序TreeMap的完整代码。

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());    }  }}

输出:

Key1: JackKey3: KateKey2: RickKey5: SteveKey4: Tom

相关推荐