如何避免修改(Java)中的ArrayList对象,即避免添加和删除其内容
答案 0 :(得分:4)
通过创建一个不可修改的列表:
List<Object> dontModify = Collections.unmodifiableList(originalList);
答案 1 :(得分:4)
您不会将ArrayList
提供给您不信任的任何内容 - 相反,您使用Collections.unmodifiableList
围绕现有列表创建不可变包装,并提供不可信的代码。
请注意,这只会在现有列表周围提供包装 - 任何可以访问原始列表的内容仍然可以修改它。如果要创建完全不可变的列表,可以使用专用类(例如ImmutableList
中的Guava)或创建原始列表的副本,使用Collections.unmodifiableList
包装该副本,并抛弃对可变列表的引用(因此只有不可变包装器知道它)。
答案 2 :(得分:2)
这取决于具体要求:
Collections.unmodifiableList(arrayList)
为您提供原始列表的不可修改的视图 - 这可能是您需要的ImmutableList
创建一个不可变的列表(而不是视图)(您必须将ArrayList
元素复制到不可变列表中)