Java中的Collections.sort()

时间:2013-02-26 08:40:37

标签: java list sorting object collections

我正在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_) {
      ...
    }
  }
}

3 个答案:

答案 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