private HashMap<DataObject, HashSet> AllDataObjects;
...
/** Returns all DataObject elements that are NOT in the specified set. */
private DataObject[] invert( HashSet<DataObject> set )
{
HashSet<DataObject> keys = (HashSet) AllDataObjects.keySet();
keys = (HashSet) keys.clone();
keys.removeAll( set );
return (DataObject[]) keys.toArray();
}
请注意,我不想AllDataObjects通过此过程进行更改。我将一组AllDataObjects' 键(这是DataObject我希望set从中减去参数的 s)转换为 HashSet 以使用克隆,它应该返回一个浅拷贝,然后我可以从中删除set而不影响AllDataObjects.
你觉得这合适吗?