如何迭代Java枚举中的值?

Java中的枚举(枚举)是一种存储一组常量值的数据类型。您可以使用枚举来存储固定值,例如一周中的天,一年中的月等。

enum Days {
   SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}

您可以使用for循环,forEach循环和java.util.stream迭代枚举的内容。

使用for循环

您可以使用values()方法检索枚举的内容。此方法返回包含所有值的数组。一旦获得数组,就可以使用for循环对其进行迭代。

示例

以下java程序使用for循环迭代上面创建的枚举Days的内容-

public class IterateEnum{
   public static void main(String args[]) {
      Days days[] = Days.values();
      System.out.println("Contents of the enum are: ");
      //使用for循环迭代枚举
      for(Days day: days) {
         System.out.println(day);
      }
   }
}

输出结果

Contents of the enum are:
SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY

使用forEach循环

您可以使用方法将枚举转换为列表或进行设置,并对列表的每个元素执行所需的操作forEach()

EnumSet.allOf(Days.class).forEach(day -> System.out.println(day));
Or,
Arrays.asList(Days.values()).forEach(day -> System.out.println(day));

示例

以下Java程序将上面创建的枚举Days转换为集合,并使用forEach循环迭代其内容-

import java.util.EnumSet;
public class IterateEnum{
   public static void main(String args[]) {
      Days days[] = Days.values();
      System.out.println("Contents of the enum are: ");
      //使用forEach循环迭代枚举
      EnumSet.allOf(Days.class).forEach(day -> System.out.println(day));
   }
}

输出结果

Contents of the enum are:
SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY

使用java.util.stream

您也可以对流使用foreach循环。因此,使用of()Stream类的方法,您可以将枚举的内容转换为流,并使用forEach循环对其元素执行所需的操作。

示例

以下java程序使用of()方法将上面创建的枚举Days转换为Stream,并使用forEach循环迭代其内容-

import java.util.stream.Stream;
public class IterateEnum{
   public static void main(String args[]) {
      Days days[] = Days.values();
      System.out.println("Contents of the enum are: ");
      //迭代枚举
      Stream.of(Days.values()).forEach(System.out::println);
   }
}

输出结果

Contents of the enum are:
SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY