Найти тему
DEBAGanov

Java 837. Сколько элементов будет пропущено, если Iterator.next() будет вызван после 10-ти вызовов Iterator.hasNext()?

Если метод next() вызывается после 10 вызовов метода hasNext(), то будет возвращен элемент, следующий за 10-м элементом в коллекции.

При каждом вызове метода hasNext(), итератор проверяет наличие следующего элемента в коллекции. Если следующий элемент существует, метод hasNext() возвращает true. Если следующий элемент не существует, то метод hasNext() возвращает false.

Когда метод next() вызывается, итератор перемещает свою позицию на следующий элемент в коллекции и возвращает его.

Таким образом, если мы вызвали метод hasNext() 10 раз и он вернул true для каждого вызова, то к моменту вызова метода next() итератор переместится на следующий элемент (11-й элемент) в коллекции, и этот элемент будет возвращен методом next().

Пример:

List<String> list = Arrays.asList("one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven");
Iterator<String> iterator = list.iterator();
int count = 0;
while(iterator.hasNext() && count < 10) {
iterator.next();
count++;
}
String nextElement = iterator.next(); // возвратит "eleven"

В этом примере 10 раз вызывается метод hasNext(), а затем метод next() вызывается еще один раз. В результате метод next() вернет элемент "eleven", который является следующим элементом после 10-го элемента в коллекции.

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov