-1

我已经阅读了很多教程,但它们似乎都有很多不同的iterator()方法内部内容。我有一个包含许多动物的类,所以我有它implements Iterable<Animal>,因为它们是Animal对象,但是我要返回public Iterator<Animal> iterator() { ... }什么?我希望能够在 for-each 循环中使用它。

4

1 回答 1

4

好吧,如果它有很多Animals,你会想要返回一个Iterator<Animal>. 试试这个代码,对于初学者:

public Iterator<Animal> iterator() {
    return new Iterator<Animal>() {
        public boolean hasNext() {
            // your code here
        }
        public Animal next() {
            // your code here
        }
        public void remove() {
            // you really don't need to do anything here unless you want to
        }
    }
}

如果您已经将Animals 存储在数组中,则只需使用一行代码:

public Iterator<Animal> iterator() {
    return Arrays.asList(yourAnimalArray).iterator();
}

如果您将其存储在任何类型Collection<Animal>(例如ArrayList)中:

public Iterator<Animal> iterator() {
    return yourAnimalCollection.iterator();
}
于 2013-09-30T00:27:31.323 回答