总结:
- ArrayList在传统的遍历时直接增加元素删除元素会抛出异常ConcurrentModificationException
- 如果使用CopyOnWriteArrayList就可以解决这个问题
// 这样就可以在遍历时进行数据操作
List<String> arrList = new ArrayList<String>();
CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>(arrList);
- 原理是遍历中操作数据时新生成数据,然后修改当前的引用地址,当然还会使用ReentrantLock锁