public static void main(String[] args) { strings = new String[N]; for (int i = 0; i < N; i++) { strings[i] = rndString(); } System.out.printf("begin\n"); boolean mine = true; if (mine) { long time4 = System.currentTimeMillis(); HashTable ht = new HashTable(); for (int i = 0; i < N; i++) { ht.insert(strings[i]); } System.out.printf("time: %d\n", System.currentTimeMillis() - time4); System.out.printf("col: %d\n", ht.colProbe); long time1 = System.currentTimeMillis(); for (int j = 0; j < 10; j++) { for (int i = 0; i < N; i++) { int idx = ht.search(strings[i]); if (idx == -1) { System.out.printf("%s: %d %d %s\n", strings[i], i, idx, idx != -1 ? "true" : "false"); } } } System.out.printf("time: %d\n", System.currentTimeMillis() - time1); System.out.printf("hops: %d %d %f\n", ht.nhops, ht.nsearch, (float) ht.nhops / ht.nsearch); } if (!mine) { long time3 = System.currentTimeMillis(); HashSet<String> hs = new HashSet<String>(); for (int i = 0; i < N; i++) { hs.add(strings[i]); } System.out.printf("time: %d\n", System.currentTimeMillis() - time3); long time2 = System.currentTimeMillis(); for (int j = 0; j < 10; j++) { for (int i = 0; i < N; i++) { if (!hs.contains(strings[i])) { System.out.printf("%s: %d\n", strings[i], i); } } } System.out.printf("time: %d\n", System.currentTimeMillis() - time2); } }