У меня есть улучшенный цикл for, в котором я повторяю NodeList как
String nodename = null;
for(node node : nodeList) {
nodename = node.getNodeName();
...
...
}
Здесь у меня проблема. Я хочу сравнить два последовательных имени узла в nodeList во время итерации и вернуть, если они найдены одинаковыми.
Как получить два последовательных элемента в расширенном цикле for?
Пожалуйста, помогите мне. Я использую стратегию синтаксического анализа DOM.
2 ответа
Вы не можете получить два последовательных элемента в этой области с помощью быстрого перечисления.
Вместо этого используйте Iterator
:
Iterator<Node> i = nodeList.iterator();
while (i.hasNext()) {
Node next = i.next();
Node following = null;
if (i.hasNext()) {
following = i.next();
}
}
Или, как предлагает vikeng21, используйте обычный цикл for
и сравните следующий индекс с размером List
, чтобы избежать IndexOutOfBoundsException
s.
String lastNode = null;
for (Node n : nodeList) {
if (n.equals(lastNode)
return n;
lastNode = n;
}
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.