Java TreeMap如何为自定义类定义一个排序规则呢?
我们都知道TreeMap中使用自定义类型,必须实现Comparable接口或实现一个自定义比较器Comparator
下文将讲述通过外部比较器的方式,使用类按照我们定义的规则排序,如下所示:
下文将讲述通过外部比较器的方式,使用类按照我们定义的规则排序,如下所示:
// 定义外部比较器comparator:
class descendComparator implements Comparator
{
public int compare(Object o1,Object o2)
{
Double i1=(Double)o1;
Double i2=(Double)o2;
return -i1.compareTo(i2);
}
}
//TreeMap降序示例
TreeMap<Double,Integer> map = new TreeMap<Double,Integer>(new descendComparator());
map.put(8.8, 7);
map.put(12.2, 8);
map.put(1.1, 9);
Set<Double> keys = map.keySet();
Iterator<Double> iter = keys.iterator();
while(iter.hasNext())
{
double k = iter.next();
System.out.println(" "+k+":"+map.get(a));
}
------运行以上代码,将输出以下信息
12.2:8
8.8:7
1.1:9
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


