簡體   English   中英

Java中的Collections.sort()

[英]Collections.sort() in Java

我在LinkedList編寫了sortedAdd(T node)方法。 如何比較node.key_current.key_ 我不能使用< (升序),因為它是通用的。

public void sortedAdd(T node){
  ...
  Node<T> current = header;
  while (current != null) {
    if (node.key_ < current.key_) {
      ...
    }
  }
}

java.lang.Object沒有實現Comparable Collections.sort(List)期望T實現Comparable。

來自Collection.sort(列表)

根據其元素的自然順序,將指定列表按升序排序。 列表中的所有元素必須實現Comparable接口。

我相信你的代碼應該是:

 List<String> list = new ArrayList<String>();

試試這個伴侶:

List<String> list = new ArrayList<String>();

list.add("D");
list.add("B");
list.add("A");

Collections.sort(list);

為了說明,參數化類型(尖括號中的一個)必須實現接口Comparable

String實現Comparable

嘗試

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM