【问题标题】:Iterator is not working迭代器不工作
【发布时间】:2018-08-27 18:22:25
【问题描述】:

我试图为我的程序编写一个迭代器,但它似乎没有按应有的方式进行迭代。我试图从网上学习一个例子,但仍然如此。

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

其中停车是定义为的“停车位”列表

列表 停车 = new 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

我的错误可能在哪里?

【问题讨论】:

  • Parking 类是否实现了 Iterable?
  • 是的,它实现了它

标签: java iterator


【解决方案1】:

在 Parking 类上实现 toString() 方法以打印您想要的格式的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 2010-11-16
    • 2012-08-28
    • 1970-01-01
    • 2014-07-30
    相关资源
    最近更新 更多