Implementieren Sie eine eigene doppelt verkettete Liste MyDoubleLinkedList. Beginnen Sie dazu mit der Vorlage MyDoubleLinkedListEmpty als Grundgerüst der Implementierung.
Gehen Sie wie folgt vor:
Node<T> und den schon implementierten Methoden vertraut. TODO markierten Methoden.add(int pos, T element) und removeNode(Node<T> n) sein. Vollziehen Sie am besten auf Papier nach, welche Referenzen zwischen Objekten vom Typ Node wie verändert werden müssen.MyDoubleLinkedListTest.Erweitern Sie Ihre Implementierung einer doppelt verketteten Liste MyDoubleLinkedList<T> so, dass sie die Schnittstelle Iterable<T> implementiert.
Diese Schnittstelle verlangt, dass Sie die Methode Iterator<T> iterator() implementieren. Sie müssen also Ihre Liste um einen passenden Iterator erweitern, der von der Methode erzeugt und zurückgegeben werden kann.
Testen Sie Ihre Implementierung mit einer Testklasse. Probieren Sie auch aus, ob Sie die Elemente Ihrer Liste mir foreach (for (T element : liste) { ...}) durchlaufen können.
Hinweise:
Iterable<T> finden Sie unter https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html.Iterator<T> finden Sie unter https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html.default gekennzeichnet sind, müssen Sie nicht implementieren. Für diese existiert bereits eine grundlegende Implementierung in der Interface-Definition. Dies ist ein neues Feature von Java 8.Ersetzen Sie in Ihrer Implementierung der Adresskartei alle Arrays durch geeignete Collections (Listen, Sets oder Maps).
Vereinfacht sich Ihr Programm dadurch? Verbessert es sich?