Перебор 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.