【问题标题】:When making my collection class Iterable (implementing Iterable) what do I have in the iterator() method?当使我的集合类 Iterable(实现 Iterable)时,我在 iterator() 方法中有什么?
【发布时间】:2013-10-05 18:16:15
【问题描述】:

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

【问题讨论】:

  • 您需要返回一个Iterator 实现。

标签: java generics interface generic-list iterable


【解决方案1】:

好吧,如果它有很多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&lt;Animal&gt; 中(例如ArrayList):

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

【讨论】:

    猜你喜欢
    • 2020-01-24
    • 2013-12-25
    • 2015-12-09
    • 1970-01-01
    • 2011-08-15
    • 2014-12-22
    • 1970-01-01
    • 2012-07-03
    • 2011-02-24
    相关资源
    最近更新 更多