Найти тему
DEBAGanov

Java 836. Что произойдет при вызове Iterator.next() без предварительного вызова Iterator.hasNext()?

Если вызвать метод next() на объекте Iterator без предварительного вызова hasNext(), то может быть выброшено исключение NoSuchElementException.

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

Поэтому перед вызовом метода next() всегда необходимо проверить наличие следующего элемента в коллекции, используя метод hasNext(). Это гарантирует, что итератор не будет вызывать метод next() для несуществующего элемента в коллекции, что приведет к выбросу исключения.

Пример:

List<String> list = Arrays.asList("one", "two", "three");
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}

В этом примере мы сначала вызываем метод hasNext() для проверки наличия следующего элемента, а затем вызываем метод next() для получения следующего элемента. Это гарантирует, что метод next() не будет вызываться для несуществующего элемента в коллекции.

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

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

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