我从 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/