LinkedList застрял в бесконечном цикле. Попробуй получить следующий узел
При попытке получить следующий узел в LinkedList
застревает в бесконечном цикле. Это не захватывает новый.
Видимо, я не звоню getNext()
в следующем пункте я вызываю его на первом узле, поэтому он возвращает только второй узел.
Любая помощь приветствуется.
public static final GroundItem[] getGroundItemsAt(final int x, final int y) {
try {
final Object deque = Game.getGroundItems()[Game.getPlane()][x][y];
if (deque == null) {
return null;
}
Deque deq = new Deque(deque);
ArrayList<GroundItem> list = new ArrayList<>();
Object holder = deq.getHead();
Node hold = new Node(holder);
Object curNode = hold.getNext();
Node cur = new Node(curNode);
//HERE IS WHERE LOOP STARTS
while (cur != null && cur != hold && cur != deq.getHead()) {
Object groundItem = cur;
final OtherItem groundIt = new OtherItem(groundItem);
System.out.println("X: " + x + " Y: " + y + " cur: " + cur);
list.add(new GroundItem(groundIt, x, y));
curNode = cur.getNext(); //Trying to grab next item
//stuck in infinite loop now.....
}
return list.toArray(new GroundItem[list.size()]);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
1 ответ
Цикл проверяет переменную cur
но вы меняете только переменную curNode
, поэтому цикл всегда будет обрабатывать один и тот же элемент.