totalEntries = z; deletedEntries = 0; if (z <= getHashThreshold()) { this.hashArray = null; } else {
totalEntries = z; deletedEntries = 0; if (z <= getHashThreshold()) { this.hashArray = null; } else {
private void createHash() { int entryCount = size(); // Calculate smallest 2^n that is greater number of entries. int size = getHashThreshold(); while (size <= entryCount) { size <<= 1; } // Give extra size to avoid collisions. size <<= 1; if (this.entries.length >= VERY_LARGE_HASH_THRESHOLD) { // Every entry has 4 bytes. size <<= 2; } else if (this.entries.length >= LARGE_HASH_THRESHOLD) { // Every entry has 2 bytes. size <<= 1; } else { // Entries are very small => give extra size to further reduce collisions. size <<= 1; } hashArray = new byte[size]; for (int i = 0; i < totalEntries; i++) { Object entryKey = getKey(i); if (entryKey != null) { putHashEntry(entryKey, i, false); } } }
private void createHash() { int entryCount = size(); // Calculate smallest 2^n that is greater number of entries. int size = getHashThreshold(); while (size <= entryCount) { size <<= 1; } // Give extra size to avoid collisions. size <<= 1; if (this.entries.length >= VERY_LARGE_HASH_THRESHOLD) { // Every entry has 4 bytes. size <<= 2; } else if (this.entries.length >= LARGE_HASH_THRESHOLD) { // Every entry has 2 bytes. size <<= 1; } else { // Entries are very small => give extra size to further reduce collisions. size <<= 1; } hashArray = new byte[size]; for (int i = 0; i < totalEntries; i++) { Object entryKey = getKey(i); if (entryKey != null) { putHashEntry(entryKey, i, false); } } }
} else if (totalEntries > getHashThreshold()) { createHash();
} else if (totalEntries > getHashThreshold()) { createHash();