Итак, я работаю над программой, которая включает два типа данных: связанный список и Arraylist.
Связанный итератор списка выглядит следующим образом:
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.
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;
}
Моя проблема в том, когда я вызываю свои методы, чтобы получить мой объект по их идентификатору (переменной экземпляра),это всегда захватывает СЛЕДУЮЩИЙ объект, а не объект, который я хочу.Как получить текущий объект как со списком связанных, так и со списком массивов?
Пожалуйста, помогите мне!