我有一张这样的 map :
Map<String, TC> mapToSort= new HashMap<String, TC>();
该值是一个类:
class TC {
private int a;
public TC(int a) {
this.a = a;
}
//getters-setters
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
}
我想不按键对这个映射进行排序(使用 TreeMap 很容易),而是按 TC 类中的字段“a”变量排序。因此,具有最高“a”值的元素应该位于 mapToSort 的顶部。 是否有任何内置或其他优雅的解决方案可以实现此目的?
最佳答案
通过您的类实现 Comparable,然后将它们放入 TreeSet
class TC implements Comparable<TC> {
private int a;
public TC(int a) {
this.a = a;
}
//getters-setters
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
@Override
public int compareTo(TC tc){
return this.a-tc.getA();
}
}
关于java - 如何不按键而是按值类的字段对映射进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15407571/