我無法理解方法實現和Collections.sort方法的邏輯。這裏是我發現的方法實現,Collections.sort實現
public static <T extends Comparable<? super T>> void sort(List<T> list) {
Object[] a = list.toArray();
Arrays.sort(a);
ListIterator<T> i = list.listIterator();
for (int j=0; j<a.length; j++) {
i.next();
i.set((T)a[j]);
}
}
首先這種方法的返回類型是void。在方法簽名中做什麼<T extends Comparable<? super T>>
?
這裏使用Array.sort的目的是什麼?
另外一旦我們實現了比較或比較器,其中我們寫的比較或compareTo方法邏輯考慮了什麼?
Arrays.sort使用改性快速排序算法排序的array.List被轉換爲陣列,並使用排序()在陣列類所提供的方法來分類排序後的數組放回到原始列表中。因此不需要返回類型 – Renjith
@Renjith:'Arrays.sort(T [])'不使用quicksort,它不穩定;它使用Timsort,這是一個修改後的mergesort,真的。 –
@Louis wasserman http://docs.oracle.com/javase/6/docs/api/java/util/Arrays.html#sort(short []) – Renjith