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