How to iteratate over Enum in Java.
To iterate over enum, you have to use values() method.
When using values() method, you can iterate through enum as if it was an array.
In this example, I use this enum.
1 2 3 4 5 |
public enum DayOfTheWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } |
Java 7 or lower example
1. Get element by index.
1 2 3 4 5 6 7 |
for (int i = 0; i < DayOfTheWeek.values().length; i++){ //do sth with DayOfTheWeek.values()[i] System.out.println(DayOfTheWeek.values()[i]); } |
2. Iterate using enhanced loop.
In the belove example dayOfTheWeek holds the current value of enum element.
1 2 3 4 5 6 |
for (DayOfTheWeek dayOfTheWeek : DayOfTheWeek.values()){ //do sth with dayOfTheWeek System.out.println(dayOfTheWeek); } |
Both programs prints:
1 2 3 4 5 6 7 8 9 |
MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY SUNDAY |
Java 8 example.
In Java 8, we can use Arrays.stream and a lambda expression to iterate over enum.
1 2 3 4 5 6 |
Arrays.stream(DayOfTheWeek.values()).forEach(dayOfTheWeek -> { //do sth with dayOfTheWeek System.out.println(dayOfTheWeek); }); |