棚子家   「返回」

如何使Map不能再新增元素?

[作者] 棚子 [创建时间] 2024-02-16 11:45:27

Map不能再新增元素,有人会想到final修饰,但是map是引用对象,所以final只能保证Map map = new HashMap<>()的引用地址不变,并不能保证map里的元素不能新增。

利用Collections类提供的方法

Map map = Collections.unmodifiableMap(map),这样如果再往map中添加元素就会报错。

自己对map封装

public class MyMap<K,V> {

private final Map<K,V> map = new ConcurrentHashMap<>();

public MyMap(Map<K,V> map) {
map.forEach(this.map::put);
}

public V get(K key) {
return map.get(key);
}
}
Contact me at E-mail
[阅读量 次]
回到顶部