Метод iterator
Метод iterator возвращает объект типа Iterator,
который позволяет последовательно перебирать элементы
множества Set. Параметров метод не принимает.
Итератор предоставляет методы hasNext для проверки
наличия следующего элемента и next для получения
этого элемента. Также у итератора есть метод remove,
который удаляет последний возвращенный элемент из множества.
Порядок обхода зависит от конкретной реализации Set:
например, LinkedHashSet сохраняет порядок вставки,
а TreeSet обходит элементы в отсортированном порядке.
Синтаксис
set.iterator()
Пример
Давайте создадим множество и переберем все его элементы с помощью итератора:
import java.util.Set;
import java.util.LinkedHashSet;
import java.util.Iterator;
public class Main
{
public static void main(String[] args)
{
Set<String> set = new LinkedHashSet<>();
set.add("a");
set.add("b");
set.add("c");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext())
{
String elem = iterator.next();
System.out.println(elem);
}
}
}
Результат выполнения кода:
"a"
"b"
"c"
Пример
Давайте удалим из множества все элементы, равные "b",
используя метод remove итератора:
import java.util.Set;
import java.util.LinkedHashSet;
import java.util.Iterator;
public class Main
{
public static void main(String[] args)
{
Set<String> set = new LinkedHashSet<>();
set.add("a");
set.add("b");
set.add("c");
set.add("b");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext())
{
String elem = iterator.next();
if (elem.equals("b"))
{
iterator.remove();
}
}
System.out.println(set);
}
}
Результат выполнения кода:
[a, c]
Пример
Давайте переберем элементы множества чисел и выведем
только те, которые больше 2:
import java.util.Set;
import java.util.LinkedHashSet;
import java.util.Iterator;
public class Main
{
public static void main(String[] args)
{
Set<Integer> set = new LinkedHashSet<>();
set.add(1);
set.add(2);
set.add(3);
set.add(4);
set.add(5);
Iterator<Integer> iterator = set.iterator();
while (iterator.hasNext())
{
Integer elem = iterator.next();
if (elem > 2)
{
System.out.println(elem);
}
}
}
}
Результат выполнения кода:
3
4
5