【问题标题】:How to use For-Each loop on my own collection?如何在我自己的收藏中使用 For-Each 循环?
【发布时间】:2011-07-04 22:58:18
【问题描述】:

我有一个网络类,其中NET = ArrayList<Node>。 我正在使用 Network 类来控制可以添加和不能添加的内容,维护 ArrayList 排序等,我有一个 get 方法,它以节点号作为参数,在 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 不适用于表达式类型”。如果可能的话,我还需要向 Network 添加什么来使用 for-each 循环?

我对此的研究只让我找到了解释为什么我需要一个 for each 的主题,我认为这在这种情况下是相关的。

【问题讨论】:

    标签: java collections iterator foreach


    【解决方案1】:

    您需要实现Iterable&lt;T&gt; 接口,以便foreach 将使用您的迭代器。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 2022-06-10
    • 2013-08-07
    相关资源
    最近更新 更多