Java Iterate Enum Using Stream

In this post, we will learn how to iterate over an Enum using Stream in Java.
Let's use Stream to perform operations on the Enum values.
To create a Stream we have two options, one using Stream.of:
Stream.of(DaysOfWeekEnum.values());
Another, using Arrays.stream:
Arrays.stream(DaysOfWeekEnum.values());

DaysOfWeekEnum.java

Let's first create an Enum called DaysOfWeekEnum. Note that we are using Stream.of() method.
import java.util.stream.Stream;

enum DaysOfWeekEnum {
    SUNDAY("off"),
        MONDAY("working"),
        TUESDAY("working"),
        WEDNESDAY("working"),
        THURSDAY("working"),
        FRIDAY("working"),
        SATURDAY("off");

    private String typeOfDay;

    DaysOfWeekEnum(String typeOfDay) {
        this.typeOfDay = typeOfDay;
    }

    public String getTypeOfDay() {
        return typeOfDay;
    }

    public void setTypeOfDay(String typeOfDay) {
        this.typeOfDay = typeOfDay;
    }

    public static Stream < DaysOfWeekEnum > stream() {
        return Stream.of(DaysOfWeekEnum.values());
    }
}

EnumIterationExample.java

Let's write an example in order to print all the Enum values using the forEach() method:
public class EnumIterationExample {
    public static void main(String[] args) {
         System.out.println("Enum iteration using Stream:");
         DaysOfWeekEnum.stream().forEach(System.out::println);
    }
}

Output

Enum iteration using Stream:
SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY

Complete Example

import java.util.stream.Stream;

public class EnumIterationExample {
    public static void main(String[] args) {
        System.out.println("Enum iteration using Stream:");
        DaysOfWeekEnum.stream().forEach(System.out::println);
    }
}


enum DaysOfWeekEnum {
    SUNDAY("off"),
        MONDAY("working"),
        TUESDAY("working"),
        WEDNESDAY("working"),
        THURSDAY("working"),
        FRIDAY("working"),
        SATURDAY("off");

    private String typeOfDay;

    DaysOfWeekEnum(String typeOfDay) {
        this.typeOfDay = typeOfDay;
    }

    public String getTypeOfDay() {
        return typeOfDay;
    }

    public void setTypeOfDay(String typeOfDay) {
        this.typeOfDay = typeOfDay;
    }

    public static Stream < DaysOfWeekEnum > stream() {
        return Stream.of(DaysOfWeekEnum.values());
    }
}
Output:
Enum iteration using Stream:
SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY

Comments