// HajautusJoukko2010_x4_test.java public class HajautusJoukko2010_x4_test { public static void main(String[] args) { // testataan kokonaisluvuilla HajautusJoukko2010_x4 S = new HajautusJoukko2010_x4(11); System.out.println("Viedään 7:lla jaolliset"); for (int i = 0; i < 50; i+=7) S.insert(i); System.out.println(S); System.out.println(S.toString_debug()); System.out.println("Member"); for (int i = 1; i < 50; i++) if (S.contains(i)) System.out.print(i + " "); System.out.println(); System.out.println(); // poistetaan 3 jaolliset System.out.println("Poistetaan 3:lla jaolliset"); for (int i = 0; i < 50; i+=3) if (S.remove(i)) System.out.print(i + "T "); else System.out.print(i + "F "); System.out.println(); System.out.println(S); System.out.println(S.toString_debug()); System.out.println(); System.out.println("Lisätään 7 jaolliset"); // viedään 7 jaolliset for (int i = 0; i < 50; i+=7) if (S.insert(i)) System.out.print(i + "T "); else System.out.print(i + "F "); System.out.println(); System.out.println(S); System.out.println(S.toString_debug()); System.out.println(); System.out.println("foreach:"); for (Integer x : S) System.out.print(x + " "); System.out.println(); System.out.println(); // testataan omalla luokalla System.out.println("Esimerkkiluokka"); HajautusJoukko2010_x4 E = new HajautusJoukko2010_x4(13); for (int i = 0; i < 5; i++) E.insert(new EsimerkkiLuokka("a" + i, i)); System.out.println(E); System.out.println(E.toString_debug()); System.out.println(); } } class EsimerkkiLuokka { private String key; private int data; public EsimerkkiLuokka(String k, int d) { key = k; data = d; } public int hashCode() { int x = 0; byte[] b = key.getBytes(); for (int i = 0; i < b.length; i++) x ^= b[i]<<((i*7)%27); return x; } public String toString() { return "[" + key + ":" + data + "]"; } }