@Override public int size() { return this.delegate.size(); }
@Override public int size() { return this.delegate.size(); }
@Override public <T> T[] toArray(T[] array) { int size = this.size(); T[] result = array.length < size ? (T[]) Array.newInstance(array.getClass().getComponentType(), size) : array; this.copyToArray(result); if (size < result.length) { result[size] = null; } return result; }
@Override public boolean equals(Object object) { if (this == object) { return true; } if (!(object instanceof Set)) { return false; } Set<?> other = (Set<?>) object; return this.size() == other.size() && this.containsAll(other); }
@Override public <T> T[] toArray(T[] array) { int size = this.size(); T[] result = array.length < size ? (T[]) Array.newInstance(array.getClass().getComponentType(), size) : array; this.copyToArray(result); if (size < result.length) { result[size] = null; } return result; }
@Override public boolean equals(Object object) { if (this == object) { return true; } if (!(object instanceof Set)) { return false; } Set<?> other = (Set<?>) object; return this.size() == other.size() && this.containsAll(other); }
private boolean retainAllFromNonSet(Iterable<?> iterable) { int retainedSize = Iterate.sizeOf(iterable); UnifiedSet<T> retainedCopy = this.newEmpty(retainedSize); for (Object key : iterable) { this.addIfFound((T) key, retainedCopy); } if (retainedCopy.size() < this.size()) { this.maxSize = retainedCopy.maxSize; this.occupied = retainedCopy.occupied; this.table = retainedCopy.table; return true; } return false; }
private boolean retainAllFromNonSet(Iterable<?> iterable) { int retainedSize = Iterate.sizeOf(iterable); UnifiedSet<T> retainedCopy = this.newEmpty(retainedSize); for (Object key : iterable) { this.addIfFound((T) key, retainedCopy); } if (retainedCopy.size() < this.size()) { this.maxSize = retainedCopy.maxSize; this.occupied = retainedCopy.occupied; this.table = retainedCopy.table; return true; } return false; }
@Override public void writeExternal(ObjectOutput out) throws IOException { out.writeInt(this.size()); out.writeFloat(this.loadFactor); for (int i = 0; i < this.table.length; i++) { Object o = this.table[i]; if (o != null) { if (o instanceof ChainedBucket) { this.writeExternalChain(out, (ChainedBucket) o); } else { out.writeObject(this.nonSentinel(o)); } } } }
@Override public void writeExternal(ObjectOutput out) throws IOException { out.writeInt(this.size()); out.writeFloat(this.loadFactor); for (int i = 0; i < this.table.length; i++) { Object o = this.table[i]; if (o != null) { if (o instanceof ChainedBucket) { this.writeExternalChain(out, (ChainedBucket) o); } else { out.writeObject(this.nonSentinel(o)); } } } }
@Override public boolean addAllIterable(Iterable<? extends T> iterable) { if (iterable instanceof UnifiedSet) { return this.copySet((UnifiedSet<?>) iterable); } int size = Iterate.sizeOf(iterable); this.ensureCapacity(size); int oldSize = this.size(); if (iterable instanceof List && iterable instanceof RandomAccess) { List<T> list = (List<T>) iterable; for (int i = 0; i < size; i++) { this.add(list.get(i)); } } else { Iterate.forEachWith(iterable, Procedures2.addToCollection(), this); } return this.size() != oldSize; }
@Override public boolean addAllIterable(Iterable<? extends T> iterable) { if (iterable instanceof UnifiedSet) { return this.copySet((UnifiedSet<?>) iterable); } int size = Iterate.sizeOf(iterable); this.ensureCapacity(size); int oldSize = this.size(); if (iterable instanceof List && iterable instanceof RandomAccess) { List<T> list = (List<T>) iterable; for (int i = 0; i < size; i++) { this.add(list.get(i)); } } else { Iterate.forEachWith(iterable, Procedures2.addToCollection(), this); } return this.size() != oldSize; }
@Override public <T> MutableSet<T> withAll(Iterable<? extends T> items) { UnifiedSet<T> set = UnifiedSet.newSet(items); T[] itemArray; switch (set.size()) { case 0: return new EmptySet<>(); case 1: itemArray = (T[]) set.toArray(); return new SingletonSet<>(itemArray[0]); case 2: itemArray = (T[]) set.toArray(); return new DoubletonSet<>(itemArray[0], itemArray[1]); case 3: itemArray = (T[]) set.toArray(); return new TripletonSet<>(itemArray[0], itemArray[1], itemArray[2]); case 4: itemArray = (T[]) set.toArray(); return new QuadrupletonSet<>(itemArray[0], itemArray[1], itemArray[2], itemArray[3]); default: return set; } }
@Override public <T> MutableSet<T> withAll(Iterable<? extends T> items) { UnifiedSet<T> set = UnifiedSet.newSet(items); T[] itemArray; switch (set.size()) { case 0: return new EmptySet<>(); case 1: itemArray = (T[]) set.toArray(); return new SingletonSet<>(itemArray[0]); case 2: itemArray = (T[]) set.toArray(); return new DoubletonSet<>(itemArray[0], itemArray[1]); case 3: itemArray = (T[]) set.toArray(); return new TripletonSet<>(itemArray[0], itemArray[1], itemArray[2]); case 4: itemArray = (T[]) set.toArray(); return new QuadrupletonSet<>(itemArray[0], itemArray[1], itemArray[2], itemArray[3]); default: return set; } }
@Override public int size() { return this.delegate.size(); }
@Override public boolean equals(Object object) { if (this == object) { return true; } if (!(object instanceof Set)) { return false; } Set<?> other = (Set<?>) object; return this.size() == other.size() && this.containsAll(other); }
@Override public <T> T[] toArray(T[] array) { int size = this.size(); T[] result = array.length < size ? (T[]) Array.newInstance(array.getClass().getComponentType(), size) : array; this.copyToArray(result); if (size < result.length) { result[size] = null; } return result; }
private boolean retainAllFromNonSet(Iterable<?> iterable) { int retainedSize = Iterate.sizeOf(iterable); UnifiedSet<T> retainedCopy = this.newEmpty(retainedSize); for (Object key : iterable) { this.addIfFound((T) key, retainedCopy); } if (retainedCopy.size() < this.size()) { this.maxSize = retainedCopy.maxSize; this.occupied = retainedCopy.occupied; this.table = retainedCopy.table; return true; } return false; }
@Override public void writeExternal(ObjectOutput out) throws IOException { out.writeInt(this.size()); out.writeFloat(this.loadFactor); for (int i = 0; i < this.table.length; i++) { Object o = this.table[i]; if (o != null) { if (o instanceof ChainedBucket) { this.writeExternalChain(out, (ChainedBucket) o); } else { out.writeObject(this.nonSentinel(o)); } } } }
@Override public <T> MutableSet<T> withAll(Iterable<? extends T> items) { UnifiedSet<T> set = UnifiedSet.newSet(items); T[] itemArray; switch (set.size()) { case 0: return new EmptySet<>(); case 1: itemArray = (T[]) set.toArray(); return new SingletonSet<>(itemArray[0]); case 2: itemArray = (T[]) set.toArray(); return new DoubletonSet<>(itemArray[0], itemArray[1]); case 3: itemArray = (T[]) set.toArray(); return new TripletonSet<>(itemArray[0], itemArray[1], itemArray[2]); case 4: itemArray = (T[]) set.toArray(); return new QuadrupletonSet<>(itemArray[0], itemArray[1], itemArray[2], itemArray[3]); default: return set; } } }