private void grow() {
	String[] oldStrings = strings;
	// boolean[] oldHt = ht;
	// int oldM = M;
	System.out.printf("grow: %d %d %d %f\n", M, nihops, ninserts,
		(float) nihops / ninserts);
	nihops = 0;
	ninserts = 0;

	M *= 2;
	nE = 0;
	colProbe = 0;
	threshold = (int) (M * loadFactor);
	strings = new String[M];
	// ht = new boolean[M];
	ht = new BitSet(M);

	for (int i = 0; i < oldStrings.length; i++) {
	    if (oldStrings[i] != null) {
		insert(oldStrings[i]);
	    }
	}

    }