迭代器不起作用

时间:2018-08-27 18:22:25

标签: java iterator

我试图为我的程序编写一个迭代器,但是看来它并没有按照需要进行迭代。我尝试从网上跟随一个例子,但仍然如此。

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;
}  

其中停车场是定义为

的“停车场”列表
  

列表停车场=新的ArrayList();

因此,我定义泊车的最后一部分是正确的,我已经对其进行了检查,并且它具有所有预期的元素。

但是我的迭代器并没有把我对他的期望还给我。
我的主要功能:

public static void main(String[] args) {
    Parking parking = new Parking();

    //Tests for iterator
    for (ParkingPlace place : parking) {
        System.out.println(parking.iterator());
    }

}

例如结果:
停车$ 1 @ 61bbe9ba
停车位$ 1 @ 610455d6
停车$ 1 @ 511d50c0

预期结果将是:
A0
A1
A2

我的错误可能在哪里?

1 个答案:

答案 0 :(得分:0)

在Parking类上实现toString()方法,以打印所需格式的结果。