要打印出來,從我LinkedList
用iterator對象,但第一個對象不會被打印出來,所以從第二個開始:如何使用Iterator從LinkedList打印第一個對象?
Car car1 = new Car("Koenigsegg CCXR Trevita", "BASASS1");
Car car2 = new Car("Lamborghini Veneno", "B1T3M3");
Car car3 = new Car("W Motors Lykan Hypersport", "NUMERO1");
public void addToList() {
availableCarList.add(car1);
availableCarList.add(car2);
availableCarList.add(car3);
System.out.print("Original contents of list: ");
IIterator itr = availableCarList.getIterator();
while(itr.hasNext()) {
Object element = itr.next();
System.out.print(element + " ");
}
System.out.println();
}
結果:
什麼我做錯了嗎?
hasNext()和next()在LinkedList類中實現:
private class Iterator<T> implements IIterator<T>
{
private LinearNode<T> temp;
public Iterator()
{
temp = (LinearNode<T>) front;
}
@Override
public boolean hasNext()
{
return (temp.getNext() != null);
}
@Override
public T next()
{
if (temp == null)
{
throw new IllegalStateException();
}
temp = temp.getNext();
return temp.getElement();
}
}
您需要提供'IIterator'的定義,大概是你的'LinkedList'類,因爲'java.util.LinkedList'不會返回'IIterato r'。 –
或者只是用'Iterator'代替它 – Tibrogargan
如果你一直在使用'java.util.LinkedList'(和'iterator()'方法和返回的'java.util.Iterator'),[你的循環會打印出第一個元素](http://ideone.com/kw2VK5)。您的列表和/或迭代器的實現存在問題。 –