注意:在现实生活中,我会使用适当的 Java collection
,但在这个任务中,我想从头开始做所有事情。
我已经在 SO 和其他网络上完成了我的谷歌搜索,但没有找到我正在寻找的东西。
我的理解是for-each
循环可以在任何实现iterable
接口的类上运行,同时这个类不必实现iterator
。我在这里吗?
比方说,我有以下两个类,它们不是从任何其他类显式派生的。
public class Pile {
private Thing aThing = new Thing();
// other varibles
// constructor
// other methods (including getters and setters)
}
和
public class Thing {
private object value; // Payload
private Thing link1; // variables that enable awareness
private Thing link2; // of other Thing objects
// For example, link1 could be reference to the previous object
// and link2 - to the next
// other varibles
// constructor
// other methods (including getters and setters)
}
在此示例中,Pile
将是double-linked List
. 但它不必。
我的目标是IterablePile
通过继承创建类。
public class IterablePile extends Pile {
}
接口的唯一要求Iterable
是实现Iterator
方法。
在这里我很难过。似乎所有示例(或者至少是我到目前为止发现的示例)都立即假定我的类是从 Java 之一派生的collections
(例如ArrayList
)。
如果不是这样呢?在这种情况下究竟需要做什么?需要采取哪些步骤?
你能指出我正确的方向吗(最好不要自己编写代码)?
还有一个问题。如果Thing
是 a private inner class
,情况会改变Pile
吗?
在我看来,我错过了一些基本的东西,但不能指望它。