From d29d8b156e7c145402d1ce41e2787afef1e0af6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20P=C5=99ib=C3=ADk?= Date: Sat, 18 Oct 2025 15:10:06 +0200 Subject: [PATCH] impl: cll iterator --- .../customlist/CustomLinkedListImpl.java | 3 +- .../customlist/CustomLinkedListIterator.java | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 assignment/src/main/java/appointmentplanner/customlist/CustomLinkedListIterator.java diff --git a/assignment/src/main/java/appointmentplanner/customlist/CustomLinkedListImpl.java b/assignment/src/main/java/appointmentplanner/customlist/CustomLinkedListImpl.java index dc5a189..5d482a2 100644 --- a/assignment/src/main/java/appointmentplanner/customlist/CustomLinkedListImpl.java +++ b/assignment/src/main/java/appointmentplanner/customlist/CustomLinkedListImpl.java @@ -10,8 +10,7 @@ public class CustomLinkedListImpl implements CustomLinkedList { @Override public Iterator iterator() { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'iterator'"); + return new CustomLinkedListIterator(this); } @Override diff --git a/assignment/src/main/java/appointmentplanner/customlist/CustomLinkedListIterator.java b/assignment/src/main/java/appointmentplanner/customlist/CustomLinkedListIterator.java new file mode 100644 index 0000000..a8d56a7 --- /dev/null +++ b/assignment/src/main/java/appointmentplanner/customlist/CustomLinkedListIterator.java @@ -0,0 +1,30 @@ +package appointmentplanner.customlist; + +import java.util.Iterator; +import java.util.Iterator; + +public class CustomLinkedListIterator implements Iterator { + + private CustomLinkedListImpl list; + + private CustomLinkedListNode lastNode; + + public CustomLinkedListIterator(CustomLinkedListImpl listToIterate) { + list = listToIterate; + lastNode = list.head; + + } + + @Override + public boolean hasNext() { + return lastNode.getNext() != null; + } + + @Override + public T next() { + T item = lastNode.getItem(); + lastNode = lastNode.getNext(); + return item; + } + +}