我无法理解为什么我们不能通过迭代不可变列表而不是使用这个新实现来实现?
答案 0 :(得分:2)
CopyOnWriteArrayList
州的javadoc
ArrayList
的线程安全变体,其中所有变异操作 (添加,设置等)是通过制作新的副本来实现的 底层数组。
Collections#unmodifiableList(List)
状态的javadoc
返回指定列表的不可修改的视图。这种方法允许 模块为用户提供"只读"访问内部列表。
对返回列表的查询操作"通读"到指定的 列表和尝试修改返回的列表,无论是直接还是通过 它的迭代器,导致
UnsupportedOperationException
。
所以,不,您无法通过CopyOnWriteArrayList
返回的List
来获取Collections#unmodifiableList(List)
提供的功能。