用到CopyOnWriteArrayList,使用时,主要有两个问题:
1)用Collections.sort()排序报错:
Caused by: java.lang.UnsupportedOperationException
at java.util.concurrent.CopyOnWriteArrayList$COWIterator.set(CopyOnWriteArrayList.java:1185)
at java.util.Collections.sort(Collections.java:234)
解决:可以复制到new ArrayList()中,排序,并clear()和复制回来。
2)元素太多,并发多,内存不够用:
CopyOnWriteArrayList原理:写数据时,先在内存备份一份,改完再回写。
如果上面两个问题没有影响,而且是读多写少的情况,就可以使用。
本文探讨了CopyOnWriteArrayList在使用过程中可能遇到的问题及解决方案,包括使用Collections.sort()进行排序时出现UnsupportedOperationException异常的处理办法,以及在高并发场景下如何避免内存溢出。
1306

被折叠的 条评论
为什么被折叠?



