【发布时间】: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