黑马程序员技术交流社区
标题:
Comparator接口compare方法排序的问题,
[打印本页]
作者:
欧阳博
时间:
2012-3-21 10:37
标题:
Comparator接口compare方法排序的问题,
Map map=new HashMap();
map.put("ggw",2);
map.put("asdf",1);
map.put("as",5);
map.put("asd",2);
如上我需要实现该集合按值大小排序,如果值相等就按键自然排序, 需要实现Comparator重写compare(T o1,T o2)方法,我知道compare()方法里的两个参数代表要比较的两个对象,那结合上面的集合,这里面参数应该怎么写呢?并且他们的排序机制是什么?是判断它们的返回值,看第一个参数小于、等于或大于第二个参数而分别返回负整数、零或正整数,然后会自动按他们的返回值大小排序吗?最好麻烦帮做个Dome实现,让我看看。
作者:
尹震
时间:
2012-3-21 10:44
其实,用map集合中的TreeMap就可以进行自动排序,
但是,排的却是key值,若想通过值进行排序,就需要用到“比较器”,
实现Comparator接口,进行重写“compare”方法,若值是相同的,再比较键值,这样就可以进行值排序了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2