当前位置: 代码迷 >> J2SE >> list 的迭代器不支持set方法解决方法
  详细解决方案

list 的迭代器不支持set方法解决方法

热度:59   发布时间:2016-04-23 20:09:12.0
list 的迭代器不支持set方法
请教一个关于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操作才能排序
  相关解决方案