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