推薦答案
在Java中,可以使用`Collections`工具類的`unmodifiableXXX()`方法將一個可變的集合變?yōu)橹蛔x集合。這樣一旦將集合轉(zhuǎn)為只讀狀態(tài)后,就不能再進行添加、刪除或修改操作,從而實現(xiàn)了集合的只讀性。
以下是幾個常用的方法示例:
1. 將List集合變?yōu)橹蛔x:
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
List<String> readOnlyList = Collections.unmodifiableList(list);
2. 將Set集合變?yōu)橹蛔x:
Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("orange");
Set<String> readOnlySet = Collections.unmodifiableSet(set);
3. 將Map集合變?yōu)橹蛔x:
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);
請注意,雖然將集合變?yōu)橹蛔x后,不能直接進行修改操作,但如果原始集合發(fā)生了變化,只讀集合也會隨之改變,因為只讀集合實際上是對原始集合的一個視圖。
另外,Java 9及以上版本還提供了`Set.of()`、`List.of()`和`Map.of()`等靜態(tài)方法來創(chuàng)建不可變集合,這些集合在創(chuàng)建后就無法進行修改操作,更加安全可靠。