请教一个关于java中
Collections.sort的一个问题。
(即public static <T extends Comparable<? super T>> void sort(List<T> list))
我在jdk api 中看到:UnsupportedOperationException - if the specified list's list-iterator does not support the set operation.
这句话是什么意思?什么叫list 的迭代器不支持set方法?set方法是指什么?能详细的解释一下么?
或者能有什么例子,能在调用这个sort方法的时候,抛出这个UnsupportedOperationException 异常?
------解决思路----------------------
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]);
}
}
看一下源码就知道了,它是先把List转为数组排序,然后再设置回List中,所以必须支持set操作才能排序