这个问题几乎是不言自明的。我有一个数据结构(我提到了一个 HashMap
但它也可以是一个 Set 或一个 List),我最初填充它:
Map<String, String> map = new HashMap<String, String>();
for( something ) {
map.put( something );
}
填充结构后,我不想添加或删除任何项目:
map.freeze();
如何使用标准 Java 库实现这一目标?
最佳答案
您可以使用标准 JDK 库做的最好的事情是 Collections.unmodifiableMap()
.
请注意,您必须删除原始 map 引用,因为仍然可以正常访问和更改该引用。如果您将旧引用传递给任何其他对象,它们仍然能够更改您的 map 。
最佳实践:
map = Collections.unmodifiableMap(map);
并确保您没有共享原始 map
引用。
关于java - 如何卡住 HashMap 以防止进一步更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17051772/