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

时间:2011-02-26 17:43:46

标签: java collections iterator foreach

我有一个网络课程,其中NET = ArrayList<Node>。 我正在使用Network类来控制可以添加和不添加的内容,维护ArrayList排序等等,我有一个get方法,它将一个Node编号作为参数,使用ArrayList上的二进制搜索(他们按照那个数字排序)

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

Network我有

public Iterator<Node> iterator() {
        return NET.iterator();
}

等等

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

但是

for (Node n : net) {

}

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

我对此的研究只引出了一些话题,解释了为什么我需要每个人,并且我认为这与此案有关。

1 个答案:

答案 0 :(得分:8)

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