通用可比“违反其一般合同的比较方法”

时间:2016-10-12 20:03:09

标签: java sorting generics comparator comparable

我有这种通用方法,按值Map排序:

public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map) {
    Map<K, V> result = new LinkedHashMap<>();
    Stream<Map.Entry<K, V>> st = map.entrySet().stream();
    st.sorted(Map.Entry.comparingByValue()).forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
    return result;
}

我得到了java.lang.IllegalArgumentException: Comparison method violates its general contract!。我无法理解合同是如何被违反的。另外,我怎样才能使它发挥作用?

0 个答案:

没有答案