public class SetTestSelf { public static void main(String[] args) { java.util.Random gen = new java.util.Random(); // java.util.LinkedList fehler = new java.util.LinkedList<>(); System.out.println("Vergleiche ob die Äquivalenz immer gilt"); System.out.println("Block " + 0); Set a = new Set(); Set b = new Set(); Set c = new Set(); for (int i = 0; i < 20; i++) { Integer add = gen.nextInt(20); System.out.println("Add " + add); a = a.add(add); // if (!a.contains(add)) // fehler.add("Nach dem Hinzufügen des Elements " + add + " sieht " // + "das Set so aus a=" + a.toString() // + " und contains(" + add + ") liefert false."); System.out.println("a = " + a); b = b.add(add); // if (!b.equals(a) || !a.equals(b)) // fehler.add("Nach dem Hinzufügen des Elements " + add + " in die " // + "beiden äquivalenten Sets a=" // + a.toString() + " liefert contains(" + add + ") false."); c = c.add(add.toString()); } System.out.println(); System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("c = " + c); System.out.println(); System.out.println("Block " + 1); System.out.println("true == " + a.equals(a)); System.out.println("false == " + a.equals(null) + " == " + a.equals(true) + " == " + c.equals("noway")); System.out.println(); System.out.println("Block " + 2); System.out.println(a.size() + " == " + b.size()); System.out.println("true == " + a.equals(b) + " == " + b.equals(a)); System.out.println("false == " + a.equals(c) + " == " + c.equals(a) + " == " + b.equals(c) + " == " + c.equals(b)); System.out.println(); Set d = a; System.out.println("Block " + 3); System.out.println("true == " + a.equals(d) + " == " + d.equals(a)); d.add(101); System.out.println("true == " + a.equals(d) + " == " + d.equals(a)); d = d.add(101); System.out.println("false == " + (a == d) + " == " + a.equals(d) + " == " + d.equals(a)); a = a.add(101); System.out.println("true == " + a.equals(d) + " == " + d.equals(a)); System.out.println("false == " + (a == d)); System.out.println(); System.out.println("Block " + 4); d = d.remove(101); a.remove(101); System.out.println("false == " + a.equals(d) + " == " + d.equals(a)); a = a.remove(101); System.out.println("true == " + a.equals(d) + " == " + d.equals(a)); System.out.println(); System.out.println("Block " + 5); a.add(99); System.out.println("true == " + a.equals(b) + " == " + b.equals(a)); System.out.println(a.size() + " == " + b.size()); System.out.println(); System.out.println("Block " + 6); a = a.add(99); System.out.println("false == " + a.equals(b) + " == " + b.equals(a)); System.out.println(a.size() + " == " + (b.size()+1)); System.out.println(); System.out.println("Block " + 7); a = a.remove(99); System.out.println("true == " + a.equals(b) + " == " + b.equals(a)); System.out.println(a.size() + " == " + b.size()); System.out.println(); System.out.println("Block " + 8); a = a.remove(18293729); System.out.println("true == " + a.equals(b) + " == " + b.equals(a)); System.out.println(a.size() + " == " + b.size()); System.out.println(); System.out.println("Block " + 9); try { a = a.remove(null); } catch (NullPointerException e) { System.out.println("Korrekte NullPointerException"); } finally { System.out.println("Exception geworfen?"); } System.out.println(); System.out.println("Block " + 10); int size = a.size(); for (int i = 0; i < 20; i++) { Integer rem = gen.nextInt(20); System.out.println("Remove " + rem); if (a.contains(rem)) size --; a = a.remove(rem); System.out.println("Set = " + a); if (!(size == a.size())) System.out.println("FEHLER!"); b = b.remove(rem); } System.out.println("true == " + a.equals(b)); // Iterator-Test: if (a instanceof Iterable) { System.out.println("\nIterator-Test:"); Iterable aClone = (Iterable) a; // falls implementiert, dann unnötig, nur zur Sicherheit java.util.Iterator it = aClone.iterator(); while (it.hasNext()) { System.out.println("next(): " + it.next()); } } else { System.out.println("\nIterator nicht implementiert."); } } }