【发布时间】:2025-12-09 04:45:01
【问题描述】:
我已经为 ArrayList 编写了这个迭代器,但现在我需要为 LinkedList 编写一个迭代器。关于如何使这段代码更高效的任何建议??
public class MyLinkedListIterator<T> implements Iterator<T>
{
//The list over which we are iterating
private MyLinkedList<T> list;
private int curPos;
public MyLinkedListIterator(MyLinkedList<T> list)
{
this.list = list;
curPos = 0;
}
@Override
public boolean hasNext() {
return curPos < list.size();
}
@Override
public T next()
{
T element = list.get(curPos);
curPos++;
return element;
}
}
如果有帮助,这是我的 ListNode 类,它跟踪 LinkedList 上的指针
public class ListNode<T>
{
private T value;
private ListNode<T> next;
public ListNode(T value, ListNode<T> next)
{
this.value = value;
this.next = null;
}
public ListNode(T value)
{
this(value, null);
}
public T getValue() {
return value;
}
public ListNode<T> getNext() {
return next;
}
public void setNext(ListNode<T> next) {
this.next = next;
}
}
我真的不知道该去哪里,所以我非常感谢一些帮助
【问题讨论】:
-
在 JDK 中,查看
LinkedList的现有迭代器类ListItr会很有帮助。如果没有具体问题,我想在 SO 没有什么可以回答的。这个问题可能属于其他社区,例如 Code Review 等。
标签: java linked-list singly-linked-list