@Test public void testEnsureCapacity() { final AtomicInteger expands = new AtomicInteger(); KTypeHashSet<KType> set = new KTypeHashSet<KType>(0) { @Override protected void allocateBuffers(int arraySize) { super.allocateBuffers(arraySize); expands.incrementAndGet(); } }; final int max = rarely() ? 0 : randomIntBetween(0, 250); for (int i = 0; i < max; i++) { set.add(cast(i)); } final int additions = randomIntBetween(max, max + 5000); set.ensureCapacity(additions + set.size()); final int before = expands.get(); for (int i = 0; i < additions; i++) { set.add(cast(i)); } assertEquals(before, expands.get()); }
@Override public void ensureCapacity(int expectedElements) { if (expectedElements > resizeAt || keys == null) { final KType[] prevKeys = Intrinsics.<KType[]> cast(this.keys); allocateBuffers(minBufferSize(expectedElements, loadFactor)); if (prevKeys != null && !isEmpty()) { rehash(prevKeys); } } }
KTypeHashSet extends AbstractKTypeCollection<KType> implements /*! #if ($templateonly) !*/ Intrinsics.KeyHasher<KType>, /*! #end !*/
             KTypeLookupContainer<KType>, 
             KTypeSet<KType>,
             Preallocable,
             Cloneable,
             Accountable { @Override public void ensureCapacity(int expectedElements) { if (expectedElements > resizeAt || keys == null) { final KType[] prevKeys = Intrinsics.<KType[]> cast(this.keys); allocateBuffers(minBufferSize(expectedElements, loadFactor)); if (prevKeys != null && !isEmpty()) { rehash(prevKeys); } } } }
KTypeHashSet extends AbstractKTypeCollection<KType> implements /*! #if ($templateonly) !*/ Intrinsics.KeyHasher<KType>, /*! #end !*/
             KTypeLookupContainer<KType>, 
             KTypeSet<KType>,
             Preallocable,
             Cloneable,
             Accountable { @Override public void ensureCapacity(int expectedElements) { if (expectedElements > resizeAt || keys == null) { final KType[] prevKeys = Intrinsics.<KType[]> cast(this.keys); allocateBuffers(minBufferSize(expectedElements, loadFactor)); if (prevKeys != null && !isEmpty()) { rehash(prevKeys); } } } KTypeHashSet();  KTypeHashSet(int expectedElements);  KTypeHashSet(int expectedElements, double loadFactor);  KTypeHashSet(KTypeContainer<? extends KType> container); }
KTypeHashSet extends AbstractKTypeCollection<KType> implements /*! #if ($templateonly) !*/ Intrinsics.KeyHasher<KType>, /*! #end !*/
             KTypeLookupContainer<KType>, 
             KTypeSet<KType>,
             Preallocable,
             Cloneable,
             Accountable { @Override public void ensureCapacity(int expectedElements) { if (expectedElements > resizeAt || keys == null) { final KType[] prevKeys = Intrinsics.<KType[]> cast(this.keys); allocateBuffers(minBufferSize(expectedElements, loadFactor)); if (prevKeys != null && !isEmpty()) { rehash(prevKeys); } } } KTypeHashSet();  KTypeHashSet(int expectedElements);  KTypeHashSet(int expectedElements, double loadFactor);  KTypeHashSet(KTypeContainer<? extends KType> container); @Override boolean add(KType key); @SafeVarargs /* #end */ final int addAll(KType... elements); int addAll(KTypeContainer<? extends KType> container); int addAll(Iterable<? extends KTypeCursor<? extends KType>> iterable); @Override /*! #if ($TemplateOptions.KTypePrimitive) KType [] toArray() { #else !*/ Object[] toArray(); boolean remove(KType key); @Override int removeAll(KType key); int removeAll(KTypeContainer<? super KType> other); @Override int removeAll(KTypePredicate<? super KType> predicate); @Override boolean contains(KType key); @Override void clear(); @Override void release(); @Override boolean isEmpty(); @Override void ensureCapacity(int expectedElements); @Override int size(); @Override int hashCode(); @Override boolean equals(Object obj); @Override KTypeHashSet<KType> clone(); @Override Iterator<KTypeCursor<KType>> iterator(); @Override long ramBytesAllocated(); @Override long ramBytesUsed(); @Override T forEach(T procedure); @Override T forEach(T predicate); @SafeVarargs /* #end */ static KTypeHashSet<KType> from(KType... elements); @Override int hashKey(KType key); int indexOf(KType key); boolean indexExists(int index); KType indexGet(int index); KType indexReplace(int index, KType equivalentKey); void indexInsert(int index, KType key); @Override String visualizeKeyDistribution(int characters); }
KTypeHashSet extends AbstractKTypeCollection<KType> implements /*! #if ($templateonly) !*/ Intrinsics.KeyHasher<KType>, /*! #end !*/
             KTypeLookupContainer<KType>, 
             KTypeSet<KType>,
             Preallocable,
             Cloneable,
             Accountable { @Override public void ensureCapacity(int expectedElements) { if (expectedElements > resizeAt || keys == null) { final KType[] prevKeys = Intrinsics.<KType[]> cast(this.keys); allocateBuffers(minBufferSize(expectedElements, loadFactor)); if (prevKeys != null && !isEmpty()) { rehash(prevKeys); } } } KTypeHashSet();  KTypeHashSet(int expectedElements);  KTypeHashSet(int expectedElements, double loadFactor);  KTypeHashSet(KTypeContainer<? extends KType> container); @Override boolean add(KType key); @SafeVarargs /* #end */ final int addAll(KType... elements); int addAll(KTypeContainer<? extends KType> container); int addAll(Iterable<? extends KTypeCursor<? extends KType>> iterable); @Override /*! #if ($TemplateOptions.KTypePrimitive) KType [] toArray() { #else !*/ Object[] toArray(); boolean remove(KType key); @Override int removeAll(KType key); int removeAll(KTypeContainer<? super KType> other); @Override int removeAll(KTypePredicate<? super KType> predicate); @Override boolean contains(KType key); @Override void clear(); @Override void release(); @Override boolean isEmpty(); @Override void ensureCapacity(int expectedElements); @Override int size(); @Override int hashCode(); @Override boolean equals(Object obj); @Override KTypeHashSet<KType> clone(); @Override Iterator<KTypeCursor<KType>> iterator(); @Override long ramBytesAllocated(); @Override long ramBytesUsed(); @Override T forEach(T procedure); @Override T forEach(T predicate); @SafeVarargs /* #end */ static KTypeHashSet<KType> from(KType... elements); @Override int hashKey(KType key); int indexOf(KType key); boolean indexExists(int index); KType indexGet(int index); KType indexReplace(int index, KType equivalentKey); void indexInsert(int index, KType key); @Override String visualizeKeyDistribution(int characters); public Object [] keys; }