Перебор Set в Java — Iterator, for-each и forEach с примерами

Пример 1: Итерация по Set с помощью цикла forEach

import java.util.Set;
import java.util.HashSet;

class Main {
  public static void main(String[] args) {
    // Creating an set
    Set<String> languages = new HashSet<>();
    languages.add("Java");
    languages.add("JavaScript");
    languages.add("Python");
    System.out.println("Set: " + languages);

    // Using forEach loop
    System.out.println("Iterating over Set using for-each loop:");
    for(String language : languages) {
      System.out.print(language);
      System.out.print(", ");
    }
  }
}

Вывод:

Set: [Java, JavaScript, Python]
Iterating over Set using for-each loop:
Java, JavaScript, Python,

В приведённом примере мы создали множество с помощью класса HashSet. Здесь мы использовали цикл for-each для обхода каждого элемента множества.

Пример 2: Итерация по Set с помощью iterator()

import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;

class Main {
  public static void main(String[] args) {
    // Creating an Set
    Set<Integer> numbers = new HashSet<>();
    numbers.add(1);
    numbers.add(3);
    numbers.add(2);
    System.out.println("Set: " + numbers);

    // Creating an instance of Iterator
    Iterator<Integer> iterate = numbers.iterator();
    System.out.println("Iterating over Set:");
    while(iterate.hasNext()) {
      System.out.print(iterate.next() + ", ");
    }
  }
}

Вывод:

Set: [1, 2, 3]
Iterating over Set:
1, 2, 3,

В этом примере мы использовали класс HashSet для создания множества и метод iterator() для его обхода. Здесь:

  • hasNext() — возвращает true, если в множестве есть следующий элемент;

  • next() — возвращает следующий элемент.

Пример 3: Итерация по Set с помощью метода forEach()

import java.util.Set;
import java.util.HashSet;

class Main {
  public static void main(String[] args) {
    // create an Set
    Set<Integer> numbers = new HashSet<>();

    // add elements to the HashSet
    numbers.add(1);
    numbers.add(2);
    numbers.add(3);
    numbers.add(4);
    System.out.println("Set: " + numbers);

    // iterate each element of the set
    System.out.print("Element of Set: ");

    // access each element using forEach() method
    // pass lambda expression to forEach()
    numbers.forEach((e) -> {
      System.out.print(e + " ");
    });
  }
}

Вывод:

Set: [1, 2, 3, 4]
Element of Set: 1 2 3 4

В приведённом примере мы создали множество numbers с помощью класса HashSet. Обратите внимание на код:

numbers.forEach((e) -> {
  System.out.print(e + " ");
});

Здесь мы использовали метод forEach() для обращения к каждому элементу множества. Метод принимает лямбда-выражение в качестве аргумента.