Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通用可与“可比”;“违反其总合同的比较法”;_Java_Sorting_Generics_Comparator_Comparable - Fatal编程技术网

Java 通用可与“可比”;“违反其总合同的比较法”;

Java 通用可与“可比”;“违反其总合同的比较法”;,java,sorting,generics,comparator,comparable,Java,Sorting,Generics,Comparator,Comparable,我有一个通用方法,它按值对映射进行排序: 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

我有一个通用方法,它按值对
映射进行排序:

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;
}

公共静态我们无法知道。该错误告诉您的是,您的
V
类型不正确地实现了
compareTo
。您还没有告诉我们您的
V
类型是什么,或者它的
比较是如何工作的。您向我们展示的代码没有问题,错误在别处。问题在于
V
类上的
compareTo
方法。最常见的情况是,您的关系不是可传递的,例如,错误比较空值或具有
a==b
b==c
a!=c
@LouisWasserman Oh。实际上。。。回答了我的问题。当我试图找出上面代码中的错误时,我没有看我应该看的地方。我确实认为那是有罪的。不过,我不会投票结束这个问题——我可以看到它对某人有帮助。我们无法知道。该错误告诉您的是,您的
V
类型不正确地实现了
compareTo
。您还没有告诉我们您的
V
类型是什么,或者它的
比较是如何工作的。您向我们展示的代码没有问题,错误在别处。问题在于
V
类上的
compareTo
方法。最常见的情况是,您的关系不是可传递的,例如,错误比较空值或具有
a==b
b==c
a!=c
@LouisWasserman Oh。实际上。。。回答了我的问题。当我试图找出上面代码中的错误时,我没有看我应该看的地方。我确实认为那是有罪的。不过,我不会投票结束这个问题——我可以看到它对某些人有帮助。