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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 人傻嘴笨脑残 中级黑马   /  2015-6-21 18:04  /  3015 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

3黑马币
TreeMap排序实现Comparator接口,能给接口加泛型吗?怎么加?想按照Key排序,如果有相同的则按照Value排序,

Map<Integer,String> map=new TreeMap<Integer,String>(new Comparator<这里的泛型应该用什么?>(){                     });

最佳答案

查看完整内容

取出来比。键不能相同,不然后面的值会覆盖前面的值的。你也没办法让TreeMap先按键排序,再按照值排序的。。。。

12 个回复

倒序浏览
人傻嘴笨脑残 发表于 2015-6-21 20:12
键比完了,怎么再对值比较

取出来比。键不能相同,不然后面的值会覆盖前面的值的。你也没办法让TreeMap先按键排序,再按照值排序的。。。。
回复 使用道具 举报
比较器比较的是谁,是哪个类型,就用哪个类型
回复 使用道具 举报
逝....曾经 发表于 2015-6-21 18:30
比较器比较的是谁,是哪个类型,就用哪个类型

能详细点吗?最好是能给下代码
回复 使用道具 举报
是键,你这里是Integer,不需要的的。
如果是:
  1. Map<XXX,String> map=new TreeMap<XXX,String>(new Comparator<XXX>(){   
  2.                                     @Override
  3.                         public int compare(XXX o1, XXX o2) {
  4.                                 // TODO Auto-generated method stub
  5.                                 return 0;
  6.                         }            });
复制代码


回复 使用道具 举报
人傻嘴笨脑残 发表于 2015-6-21 18:55
能详细点吗?最好是能给下代码

你的原代码在哪里,整个题的代码
回复 使用道具 举报
342508558 发表于 2015-6-21 19:12
是键,你这里是Integer,不需要的的。
如果是:

键比完了,怎么再对值比较
回复 使用道具 举报
342508558 发表于 2015-6-21 20:33
取出来比。键不能相同,不然后面的值会覆盖前面的值的。你也没办法让TreeMap先按键排序,再按照值排序的 ...

2333光想怎么排序了,到时把这点给忘了。那怎么按照值排序
回复 使用道具 举报
用map是为了取值方便,要排序就用数组,list之类的集合。Arrays.sore(数组);Collections.sort(list)可以直接排序的。
回复 使用道具 举报
将键值对加入到数组中,然后通过遍历进行排序;
回复 使用道具 举报
既然需要值排序,那么键不就没有存在的必要了?
直接用TreeSet 不就得了。
回复 使用道具 举报
   Map集合以键作为标识,key是唯一的
回复 使用道具 举报
围观一下,长点经验
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马