當我運行下面的代碼時,Collection.sort(l)會拋出異常。Java集合分類
異常在線程 「主要」 java.lang.ClassCastException: learning.CollectionSort不能轉換爲java.lang.Comparable的
public class CollectionSort {
public static void main (String[] args){
List l = new ArrayList();
CollectionSort obj1 = new CollectionSort();
CollectionSort obj2 = new CollectionSort();
l.add(obj1);
l.add(obj2);
Collections.sort(l);
for (int i = 0; i < l.size(); i++){
System.out.println(l.get(i));
}
}
}
這是因爲我們必須實現相當或比較用於排序自定義對象。通常,我們將在用於排序的對象中擁有屬性。
但是在上面的代碼中,我們沒有這個類的屬性。那麼可以對上面的列表進行排序?請分享你的想法。
那麼如果你想排序,你需要實現'可比較'。 – Mritunjay
嗯,沒有。該列表中有兩個'CollectionSort'對象。爲了排序它,排序方法必須告訴哪個對象比其他對象「少」。如果你沒有提供一種方法讓它知道,它怎麼能這樣做呢?你認爲「排序」會對這些對象產生什麼影響? – ajb