boolean (int key) { if (key == 0) { if (!hasZeroKey) { hasZeroKey = true; ++size; return true; } return false; } if (size >= (2 * data.length) / 3) rehash(); boolean updated = doPut(data, key); if (updated) { size++; } return updated; }