/** * Called to add an entry object into the data array. Assumes that * no entry with the same key already exists in the data array. */ private Entry<K, E> addEntry(Entry<K, E> newEntry) { if (entries >= max) prune(); else if (((float) entries) / data.length > threshold) rehash(data.length*2 + 1); int ix = (newEntry.key.hashCode() & 0x7FFFFFFF) % data.length; if (data[ix] == null) data[ix] = newEntry; else { newEntry.next = data[ix]; data[ix] = newEntry; } entries++; return newEntry; }