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