gpt4 book ai didi

Java:迭代器

转载 作者:搜寻专家 更新时间:2023-11-01 04:05:03 25 4
gpt4 key购买 nike

所以我正在开发一个涉及两种数据类型的程序:链表和数组列表。

链表迭代器看起来像:

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 对象,而不是我想要的对象。如何使用链表和数组列表获取当前对象?

请帮帮我!

最佳答案

您使用了两次 next() 方法,这可能就是原因。

试试这个

  while (xy.hasNext()) {
StudentIF tmp = xy.next();
if (id == tmp.getId()) {
return tmp;
}

关于Java:迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5906297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com