A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 欧阳博 中级黑马   /  2012-3-21 10:37  /  2825 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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实现,让我看看。

1 个回复

正序浏览
其实,用map集合中的TreeMap就可以进行自动排序,
但是,排的却是key值,若想通过值进行排序,就需要用到“比较器”,
实现Comparator接口,进行重写“compare”方法,若值是相同的,再比较键值,这样就可以进行值排序了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马