如何在 Java 中迭代枚举中的值?

java 8object oriented programmingprogramming更新于 2025/4/26 16:22:17

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

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));
或者,
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: ");
      //Iterating enum using forEach loop
      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 循环与流一起使用。因此,使用 Stream 类的 of() 方法,您可以将枚举的内容转换为流,并使用 forEach 循环对其元素执行所需的操作。

示例

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

import java.util.stream.Stream;
public class IterateEnum{
   public static void main(String args[]) {
      Days days[] = Days.values();
      System.out.println("枚举的内容是:");
      //使用 java.util.stream 迭代枚举
      Stream.of(Days.values()).forEach(System.out::println);
   }
}

输出

枚举的内容是:
SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY

相关文章