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
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。