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

cod*_*dea 0 java collections map

我从HashMap获取HashSet,我不希望我对HashSet的修改反映在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
Run Code Online (Sandbox Code Playgroud)

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

谢谢!!!

Jon*_*eet 6

如果您根据代码段的第一行创建新内容 HashSet,则该内容已经是一个单独的集合.添加或删除集合中的项目不会改变您的hashMap.当然,修改现有项目 - 但这是另一回事,并且几乎总是非常糟糕(假设您的修改影响对象相等).