У меня есть класс Network, в нем 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, не применимый к типу выражения". Что еще мне нужно добавить в сеть, чтобы использовать цикл for-each, если это возможно?
Мои исследования привели меня только к темам, объясняющим, зачем мне нужен для каждого, и я думаю, что это актуально в этом случае.