java - 如何卡住 HashMap 以防止进一步更改?

标签 java data-structures

这个问题几乎是不言自明的。我有一个数据结构(我提到了一个 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/

相关文章:

java - Web 服务互操作性

java - 无法创建 Web 应用程序存档 : No such file or directory

python - 将嵌套字典结构展平为数据集

java - 在 java 文件中搜索行并使用批处理脚本输出到另一个文件

java - Osmdroid 5.1 java.lang.NoClassDefFoundError

java - 重写toString方法并避免碰撞

c - 我的程序在递归函数中使用 realloc() 就崩溃了

java - 不同类中不同类型的数据

performance - 在MATLAB中高效的树实现

java - Java 中的表可以使用什么数据结构?