Я пытался написать итератор для моей программы, но, похоже, он не повторяется, как следует. Я пытался следовать примеру из онлайн, но все же.
public Iterator<ParkingPlace> iterator(){
Iterator<ParkingPlace> iterator = new Iterator<ParkingPlace>() {
int currentIndex =0;
@Override
public boolean hasNext() {
return currentIndex<parking.size() && parking.get(currentIndex)!=null;
}
@Override
public Parking next() {
if(!hasNext()){
throw new NoSuchElementException();
}else if (hasNext()){
return parking.get(currentIndex++);
}
return null;
}
};
return iterator;
}
Где парковка - это список "парковочных мест", определенный как
Список parking = new ArrayList ();
Итак, последняя часть, в которой я определяю парковку, правильная, я проверил ее, и в ней есть все ожидаемые элементы.
Но мой итератор не возвращает мне то, что я от него ожидаю.
Моя основная функция:
public static void main(String[] args) {
Parking parking = new Parking();
//Tests for iterator
for (ParkingPlace place : parking) {
System.out.println(parking.iterator());
}
}
Ex. результатов:
Парковка $ 1 @ 61bbe9ba
Парковка $ 1 @ 610455d6
Парковка $ 1 @ 511d50c0
Ожидаемые результаты будут:
A0
A1
A2
Идеи, где моя ошибка может быть?