Я продолжаю падать и получаю java.util.NoSuchElementException в операторе if. У меня сложилось впечатление, что while(Iterator.hasNext()) гарантирует, что вызов Iterator.next() не приведет к переполнению буфера.
Каков правильный алгоритм для перебора двух вложенных итераторов и удаления элементов из одного из итераторов при обнаружении совпадения без создания такого исключения (которое, как я думаю, вызвано выходом за границы массива) ?
введите код сюда {
Iterator<Integer> d = entitiesDeleteQueue.iterator();
Iterator<Entity> e = entities.iterator();
while (d.hasNext()) {
while (e.hasNext()) {
if (d.next() == e.next().getEntityId())
e.remove();
}
}
}
entities
будет иметь три элемента, аentitiesDeleteQueue
— два. Вы можете запустить его на бумаге. - person Thorbjørn Ravn Andersen   schedule 26.07.2016