RegularSetBuilderImpl(int expectedCapacity) { super(expectedCapacity); int tableSize = chooseTableSize(expectedCapacity); this.hashTable = new Object[tableSize]; this.maxRunBeforeFallback = maxRunBeforeFallback(tableSize); this.expandTableThreshold = (int) (DESIRED_LOAD_FACTOR * tableSize); }
RegularSetBuilderImpl(int expectedCapacity) { super(expectedCapacity); int tableSize = chooseTableSize(expectedCapacity); this.hashTable = new Object[tableSize]; this.maxRunBeforeFallback = maxRunBeforeFallback(tableSize); this.expandTableThreshold = (int) (DESIRED_LOAD_FACTOR * tableSize); }
@Override SetBuilderImpl<E> review() { int targetTableSize = chooseTableSize(distinct); if (targetTableSize * 2 < hashTable.length) { hashTable = rebuildHashTable(targetTableSize, dedupedElements, distinct); } return hashFloodingDetected(hashTable) ? new JdkBackedSetBuilderImpl<E>(this) : this; }
@GwtIncompatible // ImmutableSet.chooseTableSize public void testChooseTableSize() { assertEquals(8, ImmutableSet.chooseTableSize(3)); assertEquals(8, ImmutableSet.chooseTableSize(4)); assertEquals(1 << 29, ImmutableSet.chooseTableSize(1 << 28)); assertEquals(1 << 29, ImmutableSet.chooseTableSize((1 << 29) * 3 / 5)); // Now we hit the cap assertEquals(1 << 30, ImmutableSet.chooseTableSize(1 << 29)); assertEquals(1 << 30, ImmutableSet.chooseTableSize((1 << 30) - 1)); // Now we've gone too far try { ImmutableSet.chooseTableSize(1 << 30); fail(); } catch (IllegalArgumentException expected) { } }
@Override SetBuilderImpl<E> review() { int targetTableSize = chooseTableSize(distinct); if (targetTableSize * 2 < hashTable.length) { hashTable = rebuildHashTable(targetTableSize, dedupedElements, distinct); } return hashFloodingDetected(hashTable) ? new JdkBackedSetBuilderImpl<E>(this) : this; }
RegularSetBuilderImpl(int expectedCapacity) { super(expectedCapacity); int tableSize = chooseTableSize(expectedCapacity); this.hashTable = new Object[tableSize]; this.maxRunBeforeFallback = maxRunBeforeFallback(tableSize); this.expandTableThreshold = (int) (DESIRED_LOAD_FACTOR * tableSize); }
RegularSetBuilderImpl(int expectedCapacity) { super(expectedCapacity); int tableSize = chooseTableSize(expectedCapacity); this.hashTable = new Object[tableSize]; this.maxRunBeforeFallback = maxRunBeforeFallback(tableSize); this.expandTableThreshold = (int) (DESIRED_LOAD_FACTOR * tableSize); }
@Override SetBuilderImpl<E> review() { int targetTableSize = chooseTableSize(distinct); if (targetTableSize * 2 < hashTable.length) { hashTable = rebuildHashTable(targetTableSize, dedupedElements, distinct); } return hashFloodingDetected(hashTable) ? new JdkBackedSetBuilderImpl<E>(this) : this; }
int tableSize = chooseTableSize(elements.length); Object[] table = new Object[tableSize]; int mask = tableSize - 1; E element = (E) uniqueElements[0]; return new SingletonImmutableSet<E>(element, hashCode); } else if (tableSize > 2 * chooseTableSize(uniqueElements.length)) {
@Override SetBuilderImpl<E> review() { int targetTableSize = chooseTableSize(distinct); if (targetTableSize * 2 < hashTable.length) { hashTable = rebuildHashTable(targetTableSize, dedupedElements, distinct); } return hashFloodingDetected(hashTable) ? new JdkBackedSetBuilderImpl<E>(this) : this; }
int tableSize = chooseTableSize(elements.length); Object[] table = new Object[tableSize]; int mask = tableSize - 1; E element = (E) uniqueElements[0]; return new SingletonImmutableSet<E>(element, hashCode); } else if (tableSize > 2 * chooseTableSize(uniqueElements.length)) {
@GwtIncompatible // ImmutableSet.chooseTableSize public void testChooseTableSize() { assertEquals(8, ImmutableSet.chooseTableSize(3)); assertEquals(8, ImmutableSet.chooseTableSize(4)); assertEquals(1 << 29, ImmutableSet.chooseTableSize(1 << 28)); assertEquals(1 << 29, ImmutableSet.chooseTableSize((1 << 29) * 3 / 5)); // Now we hit the cap assertEquals(1 << 30, ImmutableSet.chooseTableSize(1 << 29)); assertEquals(1 << 30, ImmutableSet.chooseTableSize((1 << 30) - 1)); // Now we've gone too far try { ImmutableSet.chooseTableSize(1 << 30); fail(); } catch (IllegalArgumentException expected) { } }
int tableSize = chooseTableSize(n); Object[] table = new Object[tableSize]; int mask = tableSize - 1; E element = (E) elements[0]; return new SingletonImmutableSet<E>(element, hashCode); } else if (tableSize != chooseTableSize(uniques)) {
int tableSize = chooseTableSize(n); Object[] table = new Object[tableSize]; int mask = tableSize - 1; E element = (E) elements[0]; return new SingletonImmutableSet<E>(element, hashCode); } else if (tableSize != chooseTableSize(uniques)) {
int tableSize = chooseTableSize(n); Object[] table = new Object[tableSize]; int mask = tableSize - 1; E element = (E) elements[0]; return new SingletonImmutableSet<E>(element, hashCode); } else if (tableSize != chooseTableSize(uniques)) {
int tableSize = chooseTableSize(n); Object[] table = new Object[tableSize]; int mask = tableSize - 1; E element = (E) elements[0]; return new SingletonImmutableSet<E>(element, hashCode); } else if (tableSize != chooseTableSize(uniques)) {
int tableSize = chooseTableSize(n); Object[] table = new Object[tableSize]; int mask = tableSize - 1; E element = (E) elements[0]; return new SingletonImmutableSet<E>(element, hashCode); } else if (tableSize != chooseTableSize(uniques)) {
int tableSize = chooseTableSize(n); Object[] table = new Object[tableSize]; int mask = tableSize - 1; E element = (E) elements[0]; return new SingletonImmutableSet<E>(element, hashCode); } else if (tableSize != chooseTableSize(uniques)) {
int tableSize = chooseTableSize(n); Object[] table = new Object[tableSize]; int mask = tableSize - 1; E element = (E) elements[0]; return new SingletonImmutableSet<E>(element, hashCode); } else if (tableSize != chooseTableSize(uniques)) {
int tableSize = chooseTableSize(n); Object[] table = new Object[tableSize]; int mask = tableSize - 1; E element = (E) elements[0]; return new SingletonImmutableSet<E>(element, hashCode); } else if (tableSize != chooseTableSize(uniques)) {