如何在我自己的集合中使用For-Each循环?

Rec*_*cct 0 java collections foreach iterator

我有一个Network类,在它NET= ArrayList<Node>.我正在使用Network类来控制可以添加和不添加的内容,维护已ArrayList排序的等等,我有一个get方法,它将一个Node编号作为参数,使用二进制搜索ArrayList(它们根据该编号排序)

但是在大多数情况下,当其他对象需要在一个节点上调用时,他们只需要通过节点而不管它们的数量,并且通常不完全知道这个数字.

Network我有

public Iterator<Node> iterator() {
        return NET.iterator();
}
Run Code Online (Sandbox Code Playgroud)

等等

Iterator<Node> i = net.iterator();
Node n;
while (i.hasNext()) {
    n = i.next();
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

但对于

for (Node n : net) {

}
Run Code Online (Sandbox Code Playgroud)

我得到"foreach不适用于表达类型".如果可能的话,我还需要添加到网络以使用for-each循环?

我对此的研究只引发了我的主题,解释了为什么我需要每个人,我认为这在这种情况下是相关的.

Adr*_*Cox 8

您需要实现Iterable<T>接口,以便foreach使用您的迭代器.