java如何确保一个集合不能被修改

73次阅读
没有评论

共计 1004 个字符,预计需要花费 3 分钟才能阅读完成。

可以通过以下几种方法来确保一个集合不能被修改:

  1. 使用不可变集合:Java 提供了一些不可修改的集合类,如 Collections.unmodifiableListCollections.unmodifiableSetCollections.unmodifiableMap。这些方法返回的集合只能读取元素,而不能修改。
List list = new ArrayList();
list.add("item1");
list.add("item2");
List unmodifiableList = Collections.unmodifiableList(list);
unmodifiableList.add("item3"); // 抛出 UnsupportedOperationException 异常
  1. 使用只读视图:Guava 库提供了一个 ImmutableXXX.copyOf 方法,可以创建一个集合的只读视图。
List list = new ArrayList();
list.add("item1");
list.add("item2");
List readOnlyList = ImmutableList.copyOf(list);
readOnlyList.add("item3"); // 抛出 UnsupportedOperationException 异常
  1. 使用 Java 9 的不可变集合:Java 9 引入了不可变集合类,如 List.ofSet.ofMap.of。这些方法返回的集合是不可修改的。
List list = List.of("item1", "item2");
list.add("item3"); // 抛出 UnsupportedOperationException 异常
  1. 使用防御性编程:在代码中添加必要的检查和限制,确保集合不会被修改。例如,在方法的参数中使用 Collections.unmodifiableList 方法返回的集合,或者在方法内部创建一个副本并返回。
private List list = new ArrayList();
public List getList() {return Collections.unmodifiableList(list); // 返回不可修改的集合
}
public void addItem(String item) {if (item != null) {list.add(item); // 添加元素到原始集合
}
}

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-22发表,共计1004字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)