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; + } + +}