@Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; ArraySparseSet other = (ArraySparseSet) obj; if (numElements != other.numElements) return false; for (int index = 0; index < numElements; index++) if (!other.contains(elements[index])) return false; return true; }
public void difference(FlowSet otherFlow, FlowSet destFlow) { if (sameType(otherFlow) && sameType(destFlow)) { ArraySparseSet other = (ArraySparseSet) otherFlow; ArraySparseSet dest = (ArraySparseSet) destFlow; ArraySparseSet workingSet; if (dest == other || dest == this) workingSet = new ArraySparseSet(); else { workingSet = dest; workingSet.clear(); } for (int i = 0; i < this.numElements; i++) { if (!other.contains(this.elements[i])) workingSet.add(this.elements[i]); } if (workingSet != dest) workingSet.copy(dest); } else super.difference(otherFlow, destFlow); }