【发布时间】:2025-12-23 16:30:12
【问题描述】:
我无法理解为什么我们不能只通过迭代一个不可变列表而不是使用这个新实现来实现?
【问题讨论】:
-
您是在询问迭代
CopyOnWriteArrayList和迭代调用Collections.unmodifiableList(..)返回的List之间的区别吗? -
主要区别在于它是可变的和线程安全的。不可变列表是...不可变的。 Java 没有任何内置的不可变类型 - 没有告诉我们您使用的是什么实现,我们只能这么说。
-
@SotiriosDelimanolis 不,我的问题与此 CopyOnWriteArrayList 的相关性有关。并且我们不能仅仅使用一个 ImmutableList 来获得相同的功能,它是 CopyOnWriteArrayList 的 USP(唯一卖点)。
-
@SotiriosDelimanolis USP 是独特的卖点。
-
你在这里混合了很多概念; COW 列表的特点是线程安全的; Collections.unmodifiableList() 的特点是它禁用对该列表的修改。
标签: java java.util.concurrent copyonwritearraylist