在制作我的集合类时Iterable(实现Iterable)我在iterator()方法中有什么用?

时间:2013-09-30 00:20:27

标签: java generics interface generic-list iterable

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

1 个答案:

答案 0 :(得分: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
        }
    }
}

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

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

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

public Iterator<Animal> iterator() {
    return yourAnimalCollection.iterator();
}