import java.util.*;
public class Test2 {
public static void print(String pLabel, HashSet<String> pSet) {
System.out.print(pLabel + " ");
for(String s : pSet) {
System.out.print(s + " ");
}
System.out.println();
}
public static void print(HashMap<String, HashSet<String>> pMap) {
for(String s : pMap.keySet()) {
print(s, pMap.get(s));
}
}
public static void main(String[] args) {
HashSet<String> mySet = null;
HashMap<String, HashSet<String>> myMap = new HashMap<String, HashSet<String>>();
mySet = new LinkedHashSet<String>();
mySet.add("Eins");
mySet.add("Zwei");
myMap.put("Set1", mySet);
System.out.println("------------------");
System.out.println("Ein Set in der Map");
print(myMap);
mySet = new LinkedHashSet<String>();
mySet.add("Drei");
mySet.add("Vier");
mySet.add("Fünf");
myMap.put("Set2", mySet);
System.out.println("--------------------");
System.out.println("Zwei Sets in der Map");
print(myMap);
mySet = new LinkedHashSet<String>();
mySet.add("Vier");
mySet.add("Fünf");
// Derselbe Eintrag kann nur einmal vorkommen LinkedHashSet sorgt dafür
mySet.add("Vier");
// Es gibt nur einen Datensatz mit demselben key -> HashMap sorgt dafür
myMap.put("Set1", mySet);
System.out.println("---------------------------------");
System.out.println("Das Set mit dem key \"Set1\" wurde überschrieben");
print(myMap);
mySet = new LinkedHashSet<String>();
mySet.add("Drei");
mySet.add("Vier");
mySet.add("Fünf");
// nur der key wird angeschaut !
myMap.put("Set2-2", mySet);
System.out.println("-------------------------------------------------------");
System.out.println("Drei Sets in der Map, zwei davon mit identischem Inhalt");
print(myMap);
// nur der key wird angeschaut !
myMap.put("Set2-3", mySet);
System.out.println("-------------------------------------------------------");
System.out.println("Drei Sets in der Map, zwei davon mit identischem Inhalt");
System.out.println(" das gilt auch wenn sogar dasselbe Objekt zweimal ");
System.out.println(" eingefügt wird");
print(myMap);
}
}