如何避免修改ArrayList对象,即避免添加和删除其内容?

时间:2011-11-02 09:30:33

标签: java arraylist

如何避免修改(Java)中的ArrayList对象,即避免添加和删除其内容

3 个答案:

答案 0 :(得分:4)

通过创建一个不可修改的列表:

List<Object> dontModify = Collections.unmodifiableList(originalList);

答案 1 :(得分:4)

您不会将ArrayList提供给您不信任的任何内容 - 相反,您使用Collections.unmodifiableList围绕现有列表创建不可变包装,并提供不可信的代码。

请注意,这只会在现有列表周围提供包装 - 任何可以访问原始列表的内容仍然可以修改它。如果要创建完全不可变的列表,可以使用专用类(例如ImmutableList中的Guava)或创建原始列表的副本,使用Collections.unmodifiableList包装该副本,并抛弃对可变列表的引用(因此只有不可变包装器知道它)。

答案 2 :(得分:2)

这取决于具体要求:

  • Collections.unmodifiableList(arrayList)为您提供原始列表的不可修改的视图 - 这可能是您需要的
  • guava的ImmutableList创建一个不可变的列表(而不是视图)(您必须将ArrayList元素复制到不可变列表中)