小编典典
您无法根据值对TreeMap进行排序。
基于红黑树的NavigableMap实现。映射是根据其键的自然顺序或在映射创建时提供的Comparator进行排序的,具体取决于使用的是哪个构造函数。您需要提供comparator,Comparator
super K>因此比较器应该在键上进行比较。
要提供对值的排序,您将需要SortedSet。用
SortedSet> sortedset = new TreeSet>(
new Comparator>() {
@Override
public int compare(Map.Entry e1,
Map.Entry e2) {
return e1.getValue().compareTo(e2.getValue());
}
});
sortedset.addAll(myMap.entrySet());
举个例子
SortedMap myMap = new TreeMap();
myMap.put("a", 10.0);
myMap.put("b", 9.0);
myMap.put("c", 11.0);
myMap.put("d", 2.0);
sortedset.addAll(myMap.entrySet());
System.out.println(sortedset);
输出:
[d=2.0, b=9.0, a=10.0, c=11.0]
2020-09-08