我尝试使用linkedlist
方法对Collection.sort
进行排序,但我收到此错误:
绑定不匹配:类型
的有效替代sort(List<T>)
的通用方法Collections
不适用于参数(ListIndiv)
。推断类型Individu
不是有界参数<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);
导致问题..我不知道我做错了什么。
答案 0 :(得分:2)
让班级Individu
实施Comparable<Individu>
界面,以便列出List<Individu>
可排序的列表。
class Individu implements Comparable<Individu> {
// implementation here ...
}
然后你可以创建一个列表给它分配元素并按照它进行排序:
List<Individu> list = // create list as linked list e.g
list.add(i1);
list.add(i2);
Collections.sort(list);
如果您无法更改课程Individu
,则可以创建Comparator
。如果需要进一步的信息,请发表评论。
仅供参考:This site gives an overview over the concepts Comparable
Comparator
周围使用小型焦点示例。
希望这有帮助
答案 1 :(得分:2)
可比较的不是ListIndividu而是Individu类本身(您不是在比较列表,而是在列表中比较Individus)。移动“可比较”&amp;您的个人课程的相关方法。