void addEntry(int hash, Long key, String value, int bucketIndex) { if ((size >= threshold)) { resize(2 * table.length); hash = hash(key); bucketIndex = indexFor(hash, table.length); } createEntry(hash, key, value, bucketIndex); } А точнее: зачем передавать в конструктор bucketIndex, нигде не использовать это значение, а в итоге просто присвоить ему другое значение?