java容器学习(二)-- CopyOnWriteArrayList

继承结构

在这里插入图片描述

特性简介
  • 在同一时间段内的更新操作会自动同步,通过JVM机制来实现,每次更新都会创建一个新的ArrayList副本。不影响读操作
  • 因为每次更新都会创建副本,写操作比较耗资源。因此该容器主要用于读操作频繁的场景
  • 底层数据结构是可变数组
  • ArrayList的线程安全版本
  • 允许保存重复、空、不同的Object元素
  • 该容器的Iterator不支持remove()操作,否则会抛出UnsupportedOperationException。该容器的
    Iterator不会抛出ConcurrentModificationException
与ArrayList的不同
  • CopyOnWriteArrayList 线程安全,ArrayList 非线程安全
  • ArrayList在Iterating时做modification 操作会抛出ConcurrentModificationException,CopyOnWriteArrayList则不会抛出异常。
  • ArrayList 从jdk 1.2开始引入,CopyOnWriteArrayList 从jdk1.5开始引入
  • ArrayList进行Iterator时可以进行remove操作;但CopyOnWriteArrayList进行Iterator时不可以进行remove操作,否则将抛UnsupportedOperationException异常。
性能对比

C37_CopyOnWriteList
参考资料:
copyonwritearraylist-in-java
difference-arraylist-copyonwritearraylist

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值