HashSet LeftHandSide; HashSet RightHandSide; ... public boolean equals(Object obj) { if(this == obj) return true; if((obj == null) || (obj.getClass() != this.getClass())) return false; // object must be FunctionalDependency at this point FunctionalDependency FD = (FunctionalDependency)obj; return LeftHandSide == FD.LeftHandSide && RightHandSide == FD.RightHandSide; }