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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© crossover 中级黑马   /  2016-9-7 12:52  /  657 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

map集合里面如何按照键值的大小排序

3 个回复

倒序浏览
自己看下代码吧
public static void main(String[] args) {
        final HashMap<String, Integer> hm = new HashMap<>();
        hm.put("张三", 23);
        hm.put("李四", 21);
        hm.put("王五", 26);
        hm.put("赵六", 14);
       
        TreeSet<String> ts = new TreeSet<>(new Comparator<String>() {

                public int compare(String s1, String s2) {
                        int num = hm.get(s1) - hm.get(s2);
                        return num == 0 ? 1 : num;
                }
        });
        ts.addAll(hm.keySet());
       
        LinkedHashMap<String, Integer> lhm = new LinkedHashMap<>();
        for(String key : ts) {
                lhm.put(key, hm.get(key));
        }
        System.out.println(lhm);
}
回复 使用道具 举报
重写Comparator中的Comparator方法,可以设置比较的类型和顺序
回复 使用道具 举报
对Map按key和value分别排序   这个你可以参考下 http://www.cnblogs.com/hxsyl/p/3331095.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马