TestHashtable
import java.io.*;
import algorithmen.*;
public class TestHashtable {
public static void main(String[] args) throws IOException {
IOTools io = new IOTools();
// Art und Größe der Hashtabelle abfragen
boolean simple = io.jaOderNein("Einfache Hashtabelle");
int größe = io.holeInt("Größe der Hashtabelle eingeben:");
SimpleHashtable tabelle;
if (simple) {
tabelle = new SimpleHashtable(größe);
} else {
tabelle = new Hashtable(größe);
}
// Ergebnisse = Werte jeweils bei 10%, 20% etc bis 90%
double[] ergebnisse = new double[9];
int chunksize = größe/10;
// häppchenweise mit Zufallszahlen füttern
double key;
for (int i = 0; i < 9; i++) {
// entsprechend viele Zufallszahlen besorgen
for (int j = 0; j < chunksize; j++) {
key = 10000*Math.random();
tabelle.put(key);
}
ergebnisse[i] = tabelle.anzahlKollisionen();
}
// Ergebnisse ausgeben
System.out.println("Füllgrad Zahl der Kollisionen pro put-Operation");
for (int i = 0; i < 9; i++) {
double val = ergebnisse[i]/(chunksize*(i+1));
System.out.println(" " + (10*(i+1)) + "% " + val);
}
}
}