相关疑难解决方法(0)

按值对地图<键,值>进行排序

我是Java的新手,经常发现我需要对Map<Key, Value>值进行排序.

由于值不是唯一的,我发现自己将其转换keySet为a array,并通过数组排序对该数组进行排序,并使用自定义比较器对与键关联的值进行排序.

有没有更简单的方法?

java sorting collections dictionary

1569
推荐指数
27
解决办法
134万
查看次数

通用类型推断无法使用方法链接?

此代码在Java 8中编译,但无法在Java 7中编译:

class Map<K,V> {
    static <K,V> Map<K,V> empty() {return null;}
    Map<K,V> put(K k, V v) {return null;}
    V get(K k) {return null;}
}

class A {
    static void f(Map<Integer,String> m){}
    public static void main(String[] args) {
        f(Map.empty());
    }
}
Run Code Online (Sandbox Code Playgroud)

它不会推断出Map返回的具体类型Map.empty():

$ javac7 A.java
A.java:10: error: method f in class A cannot be applied to given types;
        f(Map.empty());
        ^
  required: Map<Integer,String>
  found: Map<Object,Object>
  reason: actual argument Map<Object,Object> cannot be converted to Map<Integer,String> by method invocation …
Run Code Online (Sandbox Code Playgroud)

java generics type-inference java-7 java-8

27
推荐指数
1
解决办法
2334
查看次数