@Override public boolean add(Object o) { synchronized(this) {return super.add(o);} } @Override
public UniqueSet(Collection<E> c) { super(c.size() < INITIAL_SIZE ? INITIAL_SIZE : c.size()); Iterator<E> e = c.iterator(); while (e.hasNext()) { super.add(e.next()); } }
private UniqueSet(UniqueSet<E> s, int op, E o) { this(s); if (op == OP_ADD) { // add object super.add(o); } else if (op == OP_REMOVE) { // remove object super.remove(o); } else { throw new IllegalArgumentException("Unknown op argument: " + op); } }
public UniqueSet(UniqueSet<E> s1, UniqueSet<E> s2) { super((s1.objects.length > s2.objects.length ? s1.objects.length : s2.objects.length)); UniqueSet<E> set1; UniqueSet<E> set2; if (s1.elements > s2.elements) { set1 = s1; set2 = s2; } else { set1 = s2; set2 = s1; } // clone members System.arraycopy(set1.objects, 0, this.objects, 0, set1.objects.length); this.elements = set1.elements; this.freecells = set1.freecells; // add other sets elements individually Iterator<E> iter = set2.iterator(); for (int i=0; i < set2.elements; i++) { super.add(iter.next()); } }
/** * INTERNAL: Get the internal representation of a given set. The * initial reference count is 1. */ public UniqueSet<E> get(Set<E> set) { UniqueSet<E> set2; //! if (set.isEmpty()) { //! // Replace with EMPTY_SET if empty. //! set2 = EMPTY_SET; //! if (set2.refcount == 0) super.add(EMPTY_SET); //! } else { // Look up candidate set in set pool set2 = (UniqueSet<E>)lookup(set); if (set2 == null) { // Create new set if no existing set found // FIXME: Could use 'set' variable if compatible and manageable set2 = new UniqueSet<E>(set); super.add(set2); } //!} set2.refcount++; return set2; }
super.add(newset); return newset; } else { // was there already
super.add(newset); return newset; } else { // was there already