/***************************************************************/ /* Prof. Dr. Carsten Vogt */ /* FH Koeln, Fak. 07 / Nachrichtentechnik */ /* http://www.nt.fh-koeln.de/vogt */ /* */ /* Das Programm demonstriert Basismethoden auf HashSets, */ /* mit denen Mengen gespeichert werden. */ /* Bei HashSets sind, im Unterschied zu TreeSets, die Elemente */ /* in keiner bestimmten Reihenfolge angeordnet. */ /* Das Programm ist erst ab Java 5 lauffaehig! */ /***************************************************************/ import java.io.*; import java.util.*; public class HashSets { public static void main(String[] args) { /* Deklaration und Erzeugung eines HashSets (= ungeordnete Menge). Der HashSet ist zu Beginn leer. */ HashSet menge = new HashSet(); /* Feststellung der Groesse und Test auf leere Menge */ System.out.println(); System.out.println("HashSet 'menge' wurde erzeugt:"); System.out.println(" menge.size(): "+menge.size()); System.out.println(" menge.isEmpty(): "+menge.isEmpty()); System.out.println(); /* Hinzufuegen von vier Elementen */ menge.add(6); menge.add(2); menge.add(8); menge.add(4); /* Feststellung der Groesse, Test auf leere Menge, Ausgabe des Inhalts, Test, ob bestimmte Elemente vorhanden sind. */ System.out.println("Elemente 6,2,8,4 wurden hinzugefuegt:"); System.out.println(" menge.size(): "+menge.size()); System.out.println(" menge.isEmpty(): "+menge.isEmpty()); System.out.print(" Inhalt von menge: "); for (Iterator it=menge.iterator();it.hasNext();) System.out.print(it.next()+" "); System.out.println(); System.out.println(" menge.contains(8): "+menge.contains(8)); System.out.println(" menge.contains(7): "+menge.contains(7)); System.out.println(); /* Entfernen von Elementen */ System.out.println("Ausfuehrung von menge.remove(2)"); menge.remove(2); System.out.println("Ausfuehrung von menge.remove(4)"); menge.remove(4); System.out.println(" menge.size(): "+menge.size()); System.out.print(" Inhalt von menge: "); for (Iterator it=menge.iterator();it.hasNext();) System.out.print(it.next()+" "); System.out.println(); System.out.println(); /* Entfernen aller Elemente */ menge.clear(); System.out.println("menge.clear() wurde ausgefuehrt:"); System.out.println(" menge.size(): "+menge.size()); System.out.println(" menge.isEmpty(): "+menge.isEmpty()); System.out.print(" Inhalt von menge: "); for (Iterator it=menge.iterator();it.hasNext();) System.out.print(it.next()+" "); System.out.println(); System.out.println(); /* Mengenoperationen */ Set m1 = new HashSet(), m2 = new HashSet(), m3 = new HashSet(); /* Aufbau und Ausgabe der Testmengen m1 und m2 */ m1.add(1); m1.add(2); m1.add(3); m2.add(2); m2.add(3); m2.add(4); System.out.println("Mengenoperationen:"); System.out.print(" m1: "); for (Iterator it=m1.iterator();it.hasNext();) System.out.print(it.next()+" "); System.out.println(); System.out.print(" m2: "); for (Iterator it=m2.iterator();it.hasNext();) System.out.print(it.next()+" "); System.out.println(); /* Vereinigung */ m3.addAll(m1); m3.addAll(m2); System.out.print(" Vereinigung von m1 und m2: "); for (Iterator it=m3.iterator();it.hasNext();) System.out.print(it.next()+" "); System.out.println(); /* Durchschnitt */ m3.clear(); m3.addAll(m1); m3.retainAll(m2); System.out.print(" Durchschnitt von m1 und m2: "); for (Iterator it=m3.iterator();it.hasNext();) System.out.print(it.next()+" "); System.out.println(); /* Differenz */ m3.clear(); m3.addAll(m1); m3.removeAll(m2); System.out.print(" Differenz m1 - m2: "); for (Iterator it=m3.iterator();it.hasNext();) System.out.print(it.next()+" "); System.out.println(); } }