aismvy 2018-11-07 11:07 采纳率: 50%
浏览 1655
已采纳

java中 往treeMap的构造方法中放 new new Comparator<User>() {}编译出错

public static void maptree1(Map map) {

    Map<String, User> m = new TreeMap<String, User>(new Comparator<User>() {
        @Override
        public int compare(User o1, User o2) {

            return o1.compareTo(o2);
        }

    });

    代码是这个

    ![图片说明](https://img-ask.csdn.net/upload/201811/07/1541588854_676951.png)
  • 写回答

5条回答 默认 最新

  • 飘落的秋风 2018-11-07 11:17
    关注

    Comparator 泛型应该是map的key对应的类型,或者是key的super类型

            Map<String, User> m = new TreeMap<String, User>(new Comparator<String>() {
    
                @Override
                public int compare(String o1, String o2) {
    
                    return o1.compareTo(o2);
                }
            });
    

    可以使用List ,把map的entry构造成一个List,然后使用list的比较器,这样就可以比较Entry的value了

     List<Map.Entry<String, User>> list = new ArrayList<Map.Entry<String, User>>(m.entrySet());
    
    Collections.sort(list, new Comparator<Map.Entry<String, User>>() {
        @Override
        public int compare(Entry<String, User> o1, Entry<String, User> o2) {
            return o1.getValue().compareTo(o2.getValue()); 
        }
    });
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 算法题:数的划分,用记忆化DFS做WA求调
  • ¥15 chatglm-6b应用到django项目中,模型加载失败
  • ¥15 武汉岩海低应变分析软件,导数据库里不显示波形图
  • ¥15 CreateBitmapFromWicBitmap内存释放问题。
  • ¥30 win c++ socket
  • ¥30 CanMv K210开发板实现功能
  • ¥15 C# datagridview 栏位进度
  • ¥15 vue3页面el-table页面数据过多
  • ¥100 vue3中融入gRPC-web
  • ¥15 kali环境运行volatility分析android内存文件,缺profile