Скажем, я запускаю этот код, он показывает мне это: 1 10 2 10 3 10ListIterator последний hasNext() что-то не понял,
public class Test1{
public static void main(String[] args) {
LinkedList<Integer> list = new LinkedList<Integer>();
list.add((1));
list.add((2));
list.add((3));
ListIterator<Integer> it = list.listIterator();
while(it.hasNext()){
it.next();
it.add((10));
}
for(Integer i : list){
System.out.println(i);
}
}
То, что я не получаю, почему последний hasNext()
имеет место даже подумал, что мы должны быть в конце списка (в моем понимании). На элементе 3.
Во-первых, итератор на 1. hasNext()
возврата true
потому что список имеет 2 после. Итак, я вхожу в цикл, it.next()
возвращает меня 1 и устанавливает курсор на 2. Когда я добавляю 10, это происходит в курсоре так, чтобы между 1 и 2. затем it.next()
возвращает меня 2 и устанавливает курсор на 3. Затем я добавляю 10 между 2 и 3. Но на данный момент у меня нет следующего из 3, так почему hasNext()
верните true, чтобы добавить 12 на последнем месте списка?