Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何避免修改ArrayList对象,即避免添加和删除其内容?_Java_Arraylist - Fatal编程技术网

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

Java 如何避免修改ArrayList对象,即避免添加和删除其内容?,java,arraylist,Java,Arraylist,如何避免(Java)中的ArrayList对象被修改,即通过创建不可修改的列表来避免添加和删除其内容: List<Object> dontModify = Collections.unmodifiableList(originalList); List dontModify=Collections.unmodifiableList(原始列表); 这取决于具体要求: Collections.unmodifiableList(arrayList)为您提供原始列表的不可修改视图-这可能

如何避免(Java)中的ArrayList对象被修改,即通过创建不可修改的列表来避免添加和删除其内容:

List<Object> dontModify = Collections.unmodifiableList(originalList);
List dontModify=Collections.unmodifiableList(原始列表);

这取决于具体要求:

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

您不会将
ArrayList
提供给任何您不信任的内容,而是使用它在现有列表周围创建一个不可变的包装器,并提供不受信任的代码


请注意,这只为现有列表提供了一个包装器——任何可以访问原始列表的内容都可以修改它。如果要创建一个完全不可变的列表,可以使用专用类(例如in)或创建原始列表的副本,使用集合包装该副本。不可修改列表,并丢弃对可变列表的引用(因此只有不可变包装器知道它)。

是,ImmutableList比Collections更不可变。unmodifiableList()@卢声远生源路:但大概不会比
不可修改列表
包装一个其他人都不知道的列表更不可更改。如果OP想要避免依赖番石榴,这是一个简单的方法。