黑马程序员技术交流社区

标题: TreeMap排序问题 [打印本页]

作者: 人傻嘴笨脑残    时间: 2015-6-21 18:04
标题: TreeMap排序问题
TreeMap排序实现Comparator接口,能给接口加泛型吗?怎么加?想按照Key排序,如果有相同的则按照Value排序,

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

作者: 342508558    时间: 2015-6-21 18:04
人傻嘴笨脑残 发表于 2015-6-21 20:12
键比完了,怎么再对值比较

取出来比。键不能相同,不然后面的值会覆盖前面的值的。你也没办法让TreeMap先按键排序,再按照值排序的。。。。
作者: 逝....曾经    时间: 2015-6-21 18:30
比较器比较的是谁,是哪个类型,就用哪个类型
作者: 人傻嘴笨脑残    时间: 2015-6-21 18:55
逝....曾经 发表于 2015-6-21 18:30
比较器比较的是谁,是哪个类型,就用哪个类型

能详细点吗?最好是能给下代码
作者: 342508558    时间: 2015-6-21 19:12
是键,你这里是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 19:58
人傻嘴笨脑残 发表于 2015-6-21 18:55
能详细点吗?最好是能给下代码

你的原代码在哪里,整个题的代码
作者: 人傻嘴笨脑残    时间: 2015-6-21 20:12
342508558 发表于 2015-6-21 19:12
是键,你这里是Integer,不需要的的。
如果是:

键比完了,怎么再对值比较
作者: 人傻嘴笨脑残    时间: 2015-6-21 20:38
342508558 发表于 2015-6-21 20:33
取出来比。键不能相同,不然后面的值会覆盖前面的值的。你也没办法让TreeMap先按键排序,再按照值排序的 ...

2333光想怎么排序了,到时把这点给忘了。那怎么按照值排序
作者: 342508558    时间: 2015-6-21 20:57
用map是为了取值方便,要排序就用数组,list之类的集合。Arrays.sore(数组);Collections.sort(list)可以直接排序的。
作者: GUO18735177413    时间: 2015-6-21 22:39
将键值对加入到数组中,然后通过遍历进行排序;
作者: Deathfish    时间: 2015-6-21 23:04
既然需要值排序,那么键不就没有存在的必要了?
直接用TreeSet 不就得了。
作者: 陌上桑    时间: 2015-6-23 11:11
   Map集合以键作为标识,key是唯一的
作者: 黑马无敌    时间: 2015-6-23 15:25
围观一下,长点经验




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2