1

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_) {
      ...
    }
  }
}
4

3 に答える 3

6

java.lang.ObjectはComparable を実装していません。Collections.sort(List)TはComparable を実装する想定

Collection.sort(List) から

要素の自然順序付けに従って、指定されたリストを昇順に並べ替えます。リスト内のすべての要素は Comparable インターフェースを実装する必要があります。

あなたのコードは次のようにすべきだと思います:

 List<String> list = new ArrayList<String>();
于 2013-02-26T08:42:26.463 に答える
3

この仲間を試してください:

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

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

Collections.sort(list);

説明すると、パラメータ化された型 (山括弧内のもの) は interface を実装する必要がありますComparable

String実装しComparableます。

于 2013-02-26T08:42:15.947 に答える
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
于 2013-02-26T08:48:31.057 に答える