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