Итератор не работает - PullRequest
0 голосов
/ 27 августа 2018

Я пытался написать итератор для моей программы, но, похоже, он не повторяется, как следует. Я пытался следовать примеру из онлайн, но все же.

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

Идеи, где моя ошибка может быть?

1 Ответ

0 голосов
/ 27 августа 2018

Реализуйте метод toString () в классе Parking, чтобы напечатать результат в формате, который вы хотите.

...