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();
}
Note that I don't want to alter AllDataObjects
through this process. I casted the set of AllDataObjects
' keys (which are the DataObject
s I want the set
parameter to subtract from) into a HashSet to use clone, which supposedly returns a shallow copy that I can then remove set
from without affecting AllDataObjects
.
Does this look right to you?