diff --git a/src/main/java/_6/_1/HashMapMultiSet.java b/src/main/java/_6/_1/HashMapMultiSet.java new file mode 100644 index 0000000..66e0377 --- /dev/null +++ b/src/main/java/_6/_1/HashMapMultiSet.java @@ -0,0 +1,41 @@ +package _6._1; + +import java.util.HashMap; +import java.util.Iterator; + +public class HashMapMultiSet implements MultiSet { + private HashMap map = new HashMap<>(); + + public Iterator iterator() { + return new HashMapMultiSetIterator(); + } + + public void add(T element) { + if (map.containsKey(element)) { + map.put(element,map.get(element)+1); + } else { + map.put(element,1); + } + } + + public int count(T element) { + if (map.containsKey(element)) { + return map.get(element); + } + return 0; + } + + class HashMapMultiSetIterator implements Iterator { + @Override + public boolean hasNext() { + return map.keySet().iterator().hasNext(); + } + + @Override + public T next() { + return map.keySet().iterator().next(); + } + + } + +} diff --git a/src/main/java/_6/_1/MultiSet.java b/src/main/java/_6/_1/MultiSet.java new file mode 100644 index 0000000..d97e891 --- /dev/null +++ b/src/main/java/_6/_1/MultiSet.java @@ -0,0 +1,14 @@ +package _6._1; + +/* a) REGENWETTER +* Menge: {R,E,G,N,W,T} +* Multimenge: {(R,2),(E,4),(G,1),(N,1),(W,1),(T,2)} +*/ + +public interface MultiSet extends Iterable{ + void add(T element); + + int count(T element); +} + + diff --git a/src/main/resources/6/1_Menge&Multimenge b/src/main/resources/6/1_Menge&Multimenge new file mode 100644 index 0000000..a75a9da --- /dev/null +++ b/src/main/resources/6/1_Menge&Multimenge @@ -0,0 +1,4 @@ +A Menge alles Großbuchstaben +REGENWETTER +Menge: {R,R,E,E,E,G,N,W,T,T} oder {R,E,G,N,W,T} +Multimenge: {(R,2), (E,3), (G,1), (N,1), (W,1), (T,2)} \ No newline at end of file diff --git a/src/main/resources/6/2_Exceptions&Generic b/src/main/resources/6/2_Exceptions&Generic new file mode 100644 index 0000000..a60cf6d --- /dev/null +++ b/src/main/resources/6/2_Exceptions&Generic @@ -0,0 +1,17 @@ +try { +// ... +} catch (GenericException e) { +// ... +} catch (GenericException e) { +// ... +} +Das funktioniert nicht zur Laufzeit, da Aufgrund von Type Erasure +wir zwei gleiche catch hätten. + +try { +throw new GenericException (); +} catch (GenericException e) { +// ... +} + +Auch hier funktioniert das nicht zur Laufzeit aufgrund von Tyüpe Erasure.