private void rehash() {
      int[] b = new int[data.length << 1];
      mask = b.length - 1;
      for (int i = data.length; --i >= 0;) {
        int ns = data[i];
        if (ns != 0) doPut(b, ns);
      }
      data = b;
    }
private void rehash()