if(!result.contains(p)) result.add(p);
if(other.contains(p)) { c = other.get(p); c.addMatches(p.matches); } else result.add(p);
    public NodeSet union(NodeSet other) {        long start = System.currentTimeMillis();        NodeIDSet result = new NodeIDSet();        result.addAll(other);        NodeProxy p, c;        for(Iterator i = iterator(); i.hasNext(); ) {            p = (NodeProxy)i.next();            if(!result.contains(p))                result.add(p);        }        return result;    }