CopyOnWriteArrayList操作java.lang.UnsupportedOperationException

问题一:CopyOnWriteArrayList不能强制转换成ArrayList

解决办法:将CopyOnWriteArrayList传入ArrayList中

ArrayList<T> arrayList = new ArrayList<T>(list);

问题二:CopyOnWriteArrayList不支持Collections.sort

解决办法:

ArrayList<T> arrayList = new ArrayList<T>(list);
        Collections.sort(arrayList ,new Comparator<T>() {
            public int compare(T o1, T o2) {}       });

问题三:CopyOnWriteArrayList不支持

while (iterator.hasNext()) {

iterator.remove();

}

原因:CopyOnWriteArrayList在做迭代之前是做了一份”快照”,所以此时的iter是不可变的,也就是说如果在此遍历中调用iter.remove()会抛出异常

解决办法:

        CopyOnWriteArrayList<T> t1 ;
        Iterator<GameExperience> iterator = t1.iterator();
        while (iterator.hasNext()) {
                T t= iterator.next();
                t1.remove(t);
            }
时间: 2024-11-06 01:17:53

CopyOnWriteArrayList操作java.lang.UnsupportedOperationException的相关文章

【java】在分页查询结果中对最后的结果集List进行操作add()或remove()操作,报错:java.lang.UnsupportedOperationException

场景: 在分页查询结果中对最后的结果集List进行操作add()或remove()操作,报错:java.lang.UnsupportedOperationException 错误: java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.add(Collections.java:1055) at com.pisen.cloud.luna.ms.goods.api.impl.Te

Hbase delete遇到的常见异常: Exception in thread &quot;main&quot; java.lang.UnsupportedOperationException

hbase 执行批量删除时出现错误: Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.remove(AbstractList.java:161) at org.apache.hadoop.hbase.client.HTable.delete(HTable.java:852) 这种异常其实很常见,remove操作不支持,为什么会出现不支持的情况呢?检查

java.lang.UnsupportedOperationException

在使用Arrays.asList()后调用add,remove这些method时出现java.lang.UnsupportedOperationException异常.这是由于Arrays.asList() 返回java.util.Arrays$ArrayList, 而不是ArrayList.Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等method在AbstractList中是默认throw UnsupportedOperation

java 异常java.lang.UnsupportedOperationException

在项目中采用一个枚举的集合,本人采用Collections中的空集合Collections.emptyList()在添加时发生异常: 常见集合如下: private List<VacationCategory> vacationcategorys = Collections.emptyList(); 报错误如下: -- Encapsulated exception ------------\java.lang.UnsupportedOperationException at java.util

关于Mybatis的java.lang.UnsupportedOperationException异常处理

圈住的那行报java.lang.UnsupportedOperationException这个错,这个错的意思是:不支持的操作异常 异常我就不贴了,直接上解决办法吧. 可能我的异常跟大家的不太一样,报了这个异常时百度了很久,得到的解决大致都是:遍历List集合时不能做删除操作,要用迭代器等等,但仔细看我的也没有类似的操作啊! 只是做了一个简单的查询...最后发现问题所在: **Dao . xml : 如果你的返回值类型和我一样是List<String>,千万别这样接收,改为String,在Da

Arrays.asList引起的java.lang.UnsupportedOperationException解决方法

在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下. 代码块: public class ListTest { public static void main(String[] args) { String[] array = {"1","2","3","4","5"}

Expected one result (or null) to be returned by selectOne(), but found: 2 和 java.lang.UnsupportedOperationException异常

在学习MyBatis的时候,简简单单的MyBatis+MySql的增删改查操作,但是却出了问题. 刚开始数据库只有一条数据的时候,岁月静好,一切看起来都那么的OJBK.但是,当我往数据库插入第二条数据的时候, 再次查询所有数据的时候, 却出现了Expected one result (or null) to be returned by selectOne(), but found: 2 这个异常,好吧,既然你说了期望一条,那么我用List来接收把. 却出现了这个异常java.lang.Unsu

coding++:Arrays.asList() - java.lang.UnsupportedOperationException异常处理

这个异常遇到了才知道坑这么大,坑爹的方法. private String[] otherUserFromArray = new String[]{“3”, “4”, “发放”}; List<String> userFromList = Arrays.asList(otherUserFromArray); 在使用 Arrays.asList()转化数组成为list的时候,生成了ArrayList, 表面上看是 java.util.ArrayList, 实际上是Arrays的内部类 ArrayLi

Android -- Canvas java.lang.UnsupportedOperationException

干货 java.lang.UnsupportedOperationException at android.view.GLES20Canvas.clipPath(GLES20Canvas.java:287) at br.com.iba.view.PageCurlView.drawCurl(PageCurlView.java:284) at br.com.iba.view.PageCurlView.onDraw(PageCurlView.java:353) at android.view.View