为什么CopyOnWriteArrayList与迭​​代unmodifiableList不同?

时间:2014-11-29 17:31:52

标签: java java.util.concurrent copyonwritearraylist

我无法理解为什么我们不能通过迭代不可变列表而不是使用这个新实现来实现?

1 个答案:

答案 0 :(得分:2)

CopyOnWriteArrayList州的javadoc

  

ArrayList的线程安全变体,其中所有变异操作   (添加,设置等)是通过制作新的副本来实现的   底层数组。

Collections#unmodifiableList(List)状态的javadoc

  

返回指定列表的不可修改的视图。这种方法允许   模块为用户提供"只读"访问内部列表。

     

对返回列表的查询操作"通读"到指定的   列表和尝试修改返回的列表,无论是直接还是通过   它的迭代器,导致UnsupportedOperationException

所以,不,您无法通过CopyOnWriteArrayList返回的List来获取Collections#unmodifiableList(List)提供的功能。