Перебор enum в Java — программа через values() и for-each

Чтобы пройтись по всем константам перечисления, можно использовать метод values() и цикл for-each либо специальный класс EnumSet.

Пример 1: проход по enum с помощью цикла forEach

enum Size {
  SMALL, MEDIUM, LARGE, EXTRALARGE
 }

 class Main {
  public static void main(String[] args) {

    System.out.println("Access each enum constants");

    // use foreach loop to access each value of enum
    for(Size size : Size.values()) {
      System.out.print(size + ", ");
    }
  }
 }

Вывод 1:

Access each enum constants
SMALL, MEDIUM, LARGE, EXTRALARGE,

В этом примере у нас есть enum с именем Size. Обратите внимание на выражение:

Size.values()

Метод values() превращает константы перечисления в массив типа Size. Затем с помощью цикла forEach мы проходим по каждому элементу.

Пример 2: проход по enum с помощью класса EnumSet

import java.util.EnumSet;
// create an enum
enum Size {
  SMALL, MEDIUM, LARGE, EXTRALARGE
 }

 class Main {
  public static void main(String[] args) {

    // create an EnumSet class
    // convert the enum Size into the enumset
    EnumSet<Size> enumSet = EnumSet.allOf(Size.class);

    System.out.println("Elements of EnumSet: ");
    // loop through the EnumSet class
    for (Size constant : enumSet) {
      System.out.print(constant + ", ");
    }

  }
 }

Вывод:

Elements of EnumSet:
SMALL, MEDIUM, LARGE, EXTRALARGE,

Здесь метод allOf() создаёт EnumSet из перечисления Size. Затем мы проходим по каждому элементу набора с помощью цикла forEach.