我正在sortedAdd(T node)
中编写LinkedList
方法。如何将node.key_
与current.key_
进行比较?我不能使用<
(升序),因为它是通用的。
public void sortedAdd(T node){
...
Node<T> current = header;
while (current != null) {
if (node.key_ < current.key_) {
...
}
}
}
答案 0 :(得分:7)
java.lang.Object没有实施可比较。Collections.sort(List)期望T
实现可比较。
<强> From Collection.sort(List) 强>
按照升序对指定列表按升序排序 其元素的自然排序。列表中的所有元素都必须 实现Comparable接口。
我相信你的代码应该是:
List<String> list = new ArrayList<String>();
答案 1 :(得分:3)
试试这个伙伴:
List<String> list = new ArrayList<String>();
list.add("D");
list.add("B");
list.add("A");
Collections.sort(list);
为了解释,参数化类型(尖括号中的类型)必须实现接口Comparable
。
String
实施Comparable
。
答案 2 :(得分:0)
试
List<String> unsortList = new ArrayList<String>();
unsortList.add("CCC");
unsortList.add("111");
unsortList.add("AAA");
unsortList.add("BBB");
unsortList.add("ccc");
unsortList.add("bbb");
unsortList.add("aaa");
unsortList.add("333");
unsortList.add("222");
//sort the list
Collections.sort(unsortList);
System.out.println("ArrayList is sorted");
for(String temp: unsortList){
System.out.println(temp);
}
<强>输出强>
ArrayList is sorted
111
222
333
AAA
BBB
CCC
aaa
bbb
ccc