java - Collection.sort 与 LinkedList Comparable 方法已被重写

标签 java list comparable

我尝试对我的 linkedlist 进行排序使用Collection.sort方法,我收到此错误:

Bound mismatch: The generic method sort(List<T>) of type Collections is not applicable for the arguments (ListIndiv). The inferred type Individu is not a valid substitute for the bounded parameter <T extends Comparable<? super T>>"

我尝试对此进行一些研究,但没有找到问题的答案。

列出各个类:

public class ListIndiv extends LinkedList<Individu> 
    implements Comparable<Individu> {
    //some code
    @Override
    public int compareTo(Individu i1, Individu i2) {
        return peek().distance(i1) - peek().distance(i2);
    }

主类:

public class Main {
    public static void main(String[] args) {

        Individu i1 = new Individu();
        i1.age = 4; i1.couleur_yeux = Color.green;
        Individu i2 = new Individu();
        i2.age = 16; i2.couleur_yeux = Color.blue;
        Individu i3 = new Individu();
        i3.age = 24; i3.couleur_yeux = Color.black;

        ListIndiv li = new ListIndiv();

        li.add(i1);li.add(i2);li.add(i3);

        Collections.sort(li);
    }
}

线路

Collection.sort(li);

导致了问题..我不知道我做错了什么。

最佳答案

应该比较的不是ListIndividu,而是Individu类本身(您不是在比较列表,而是在列表中比较Individus)。将“Comparable”及相关方法移至您的 Individu 类。

关于java - Collection.sort 与 LinkedList Comparable 方法已被重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24351459/

相关文章:

java - 错误 : java. lang.ClassCastException : class org. apache.cxf.bus.spring.SpringBusFactory

java - JSoup 似乎忽略字符代码?

java - 如何在 Spring 中使用 JDBC 为 ClientDetailsS​​erviceConfigurer 添加客户端?

java - 如何增加线宽(Java Applet)

java - 未获取 ListIterator 的输出

java - 尝试将列表转换为数组时出错 []

list - Haskell - 使用 foldr/foldl 对列表列表求和

java - 将 Comparable 的实例传递给需要 Comparator 的方法

java - 如何在包含具有多个键/值对的 HashMap 的列表上使用 indexOf

java - compareTo 是否有某种预启动延迟?