【发布时间】:2011-05-06 02:54:55
【问题描述】:
所以我正在开发一个涉及两种数据类型的程序:链表和数组列表。
链表迭代器看起来像:
private class NodeIterator implements Iterator<StudentIF> {
private Node curr;
public NodeIterator(Node head) {
curr = head;
}
public void remove() { }
public boolean hasNext() {
if (curr == null)
return false;
return true;
}
public StudentIF next() {
Node temp = curr;
curr = curr.getNext();
return temp.getData();
}
} // end class NodeIterator
然后我调用 ArrayList Iterator 方法/类。
MyArrayListName.iterator();
下面是调用迭代器的方法:
public StudentIF getStudent(int id) {
Iterator<StudentIF> xy = iterator();
while (xy.hasNext()) {
if (id == xy.next().getId()) {
return xy.next();
}
}
// Student doesn't exist
return null;
}
我的问题是当我调用我的方法通过它们的 id(实例变量)获取我的对象时,它总是抓取 NEXT 对象,而不是我想要的对象。如何同时使用 Linked List 和 Array 列表获取当前对象?
请帮帮我!
【问题讨论】: