java - 在 Java 中从 Map 分离 Collection 的最佳方法是什么?

标签 java collections dictionary

我从 HashMap 获取 HashSet,但我不希望我对 HashSet 的修改反射(reflect)在 HashMap 值上。

做这样的事情的最好方法是什么:

HashSet<Object> hashset = new HashSet((Collection<Object>) hashmap.values());
//Something like ...
hashset.detach();
//Then i can modify the HashSet without modifying the HashMap values

编辑: 我必须修改 HashSet 中的一个元素,但我不想修改 HashMap 中的同一元素。

谢谢!!!

最佳答案

如果您根据代码片段的第一行创建一个 HashSet,那么它已经是一个单独的集合。从集合中添加或删除项目不会更改您的 hashMap。当然,修改现有项目会 - 但那是另一回事,并且几乎总是一件非常糟糕的事情(假设您的修改影响对象平等)。

关于java - 在 Java 中从 Map 分离 Collection 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3728173/

相关文章:

c# - 仅在 VB 中的 .NET 集合

Java:非空方法作为映射值

java.lang.runtimeException 无法启动 actvity 组件信息 java.lang.nullpointerException

返回按计数排序的唯一值的 JavaScript 函数

java - java中允许remove()方法工作的Iteration的内部实现是什么?

python - 将项目 append 到字典 Python

python - 在python中,如何获取对象/字典列表中的最低键值对,其中每个项目都有不同的、单独的键值对?

java - if语句不断打印

java - 可以告诉 MapStruct 不执行自动映射吗?

java - 如何在java中捕获全局按键