如何在 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