使用Comparator对Map进行排序会导致语法错误

时间:2015-11-26 20:10:32

标签: java sorting dictionary

我试图像这样排序一个地图(首先按值(整数)然后按键(字符串))

public static Map<String, Integer> sortMap(Map<String, Integer> map) {
    List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet()); 
    // thenComparing( ... ) is causing an error
    list.sort(Map.Entry.comparingByValue().thenComparing(Map.Entry.comparingByKey()));   

    //...
}

我收到以下错误:

1

知道我错过了什么吗?这被建议作为我previous question的替代方案,但我无法使其发挥作用。

1 个答案:

答案 0 :(得分:5)

不幸的是,类型推断失败了,你必须给它一般类型。

list.sort(Map.Entry.<String,Integer>comparingByValue()
        .thenComparing(Map.Entry.comparingByKey()));