Java如何使一个集合只读?
问题描述:Java如何使一个集合只读?
推荐答案 本回答由问问达人推荐
在Java中,可以使用`Collections`工具类的`unmodifiableXXX()`方法将一个可变的集合变为只读集合。这样一旦将集合转为只读状态后,就不能再进行添加、删除或修改操作,从而实现了集合的只读性。
以下是几个常用的方法示例:
1. 将List集合变为只读:
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
List<String> readOnlyList = Collections.unmodifiableList(list);
2. 将Set集合变为只读:
Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("orange");
Set<String> readOnlySet = Collections.unmodifiableSet(set);
3. 将Map集合变为只读:
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
Map<String, Integer> readOnlyMap = Collections.unmodifiableMap(map);
请注意,虽然将集合变为只读后,不能直接进行修改操作,但如果原始集合发生了变化,只读集合也会随之改变,因为只读集合实际上是对原始集合的一个视图。
另外,Java 9及以上版本还提供了`Set.of()`、`List.of()`和`Map.of()`等静态方法来创建不可变集合,这些集合在创建后就无法进行修改操作,更加安全可靠。
查看其它两个剩余回答