ok i have this assignment which i'm just having problems with the iterator part of it.
from the ListType class, this is what i wrote:
public Iterator iterator(){
return new OrderedStringListTypeIterator(list);
}
this code is from the textbook which idk how they got theirs to work, but...
import java.util.Iterator;
import java.util.NoSuchElementException;
public class OrderedStringListTypeIterator implements Iterator
{
private String[] list;
private int previous;
boolean canRemove;
public OrderedStringListTypeIterator(String [] aList)
{
list = aList;
previous = -1;
canRemove = false;
}
public boolean hasNext()
{
if ((previous + 1) < list.size())
return true;
else
return false;
}
public String next()
{
if (!hasNext())
throw new NoSuchElementException();
previous++;
canRemove = true;
return list.get(previous);
}
public void remove()
{
if (!canRemove)
throw new IllegalStateException();
list.remove(previous);
previous--;
canRemove = false;
}
}
i'm getting error from the list.size() command, and i do know why, but this is the code from the book and i'm supposed to use it. am i supposed to create an ListType object in the OrderedStringListTypeIterator constructor in order to access its methods, or do i extend ListType instead? i've tried extending, but when testing it out in the driver class, it keeps telling me that it doesn't have a next element. so basically my list is empty which it shouldn't be. i'm so confused, and i don't really understand the point of an iterator.
i've done further testing and the size() method is always return 0, have no idea why.