code: private void put(final Item i) {
          if (index > threshold) {
              int ll = items.length;
              int nl = ll * 2 + 1;
              Item[] newItems = new Item[nl];
              for (int l = ll - 1; l >= 0; --l) {
                  Item j = items[l];
                  while (j != null) {
                      int index = j.hashCode % newItems.length;
                      Item k = j.next;
                      j.next = newItems[index];
                      newItems[index] = j;
                      j = k;
                  }
              }
              items = newItems;
              threshold = (int) (nl * 0.75);
          }
          int index = i.hashCode % items.length;
          i.next = items[index];
          items[index] = i;
      }
docs: Puts the given item in the constant pool's hash table. The hash table
  <i>must</i> not already contains this item.
  
  @param i the item to be added to the constant pool's hash table.