java - Unmodifiable 可修改对象列表

标签 java list unmodifiable

假设我们有一个 List<List<String>>并想让它完全不可修改。只需将其传递给 Collection.unmodifiableList这还不够,因为内部列表仍然可以修改。

我会采用以下方法:

List<List<String>> someList;

使其不可修改:

List<List<String>> tempList = new ArrayList<>();
for(List<String> strList : someList) {
    tempList.add(Collections.unmodifiableList(strList));
}
List<List<String>> safeList = Collections.unmodifiableList(tempList);

这个方法可以吗?

最佳答案

只要您不保留对原始的、可修改的列表的引用,这种方法就应该有效。此类引用可以修改由不可修改列表包裹的列表。

关于java - Unmodifiable 可修改对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25248619/

相关文章:

java - 更新方法不会保存到Grails中的数据库

java - 从 Spring Boot 应用程序将日志文件存储在 AWS S3 中

java - 如何在java中的const变量中保存Date对象

java - 传递 Collections.unmodifiable* 一个已经用 Collections.unmodifiable* 包装的实例是多么低效?

java - 如何在 Java 中返回线程安全/不可变的集合?

java - 如何声明该方法正在返回 Collections.unmodifiableMap

java - 如何在 mono/linux 上从 Java 调用 .Net dll(函数)

mysql - 更新列表列表表中的特定行

c# - 将值添加到缺少数据的列表

r - 从嵌套列表深处提取命名元素的通用方法