Метод hasNext
Метод hasNext принадлежит интерфейсу Iterator
и используется для проверки наличия следующего элемента
в коллекции при переборе. Метод не принимает параметров
и возвращает логическое значение boolean.
Если впереди есть еще один элемент, метод вернет
true, а если коллекция закончилась - false.
Обычно hasNext используется в связке с методом
next внутри цикла while.
Синтаксис
iterator.hasNext()
Пример
Давайте создадим список и получим его итератор.
Проверим с помощью метода hasNext,
есть ли элементы для обхода:
import java.util.List;
import java.util.Iterator;
public class Main
{
public static void main(String[] args)
{
List<String> list = List.of("a", "b", "c", "d", "e");
Iterator<String> iterator = list.iterator();
System.out.println(iterator.hasNext());
}
}
Результат выполнения кода:
true
Пример
Давайте переберем все элементы списка в цикле
while, используя hasNext для проверки
и next для получения значения:
import java.util.List;
import java.util.Iterator;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = List.of(1, 2, 3, 4, 5);
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
Integer element = iterator.next();
System.out.println(element);
}
}
}
Результат выполнения кода:
1
2
3
4
5
Пример
Давайте проверим, что произойдет, если вызвать
hasNext после полного обхода коллекции.
Для этого переберем все элементы, а затем
запросим наличие следующего:
import java.util.List;
import java.util.Iterator;
public class Main
{
public static void main(String[] args)
{
List<String> list = List.of("abcde");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
iterator.next();
}
System.out.println(iterator.hasNext());
}
}
Результат выполнения кода:
false
Смотрите также
-
интерфейс
Iterator,
который предоставляет методы для обхода коллекций -
метод
next,
который возвращает следующий элемент -
метод
remove,
который удаляет текущий элемент -
метод
forEachRemaining,
который выполняет действие для оставшихся элементов