如何在Java中迭代列舉值?
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: "); //Iterating enum using the for loop 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: "); //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("Contents of the enum are: "); //Iterating the enum using java.util.stream Stream.of(Days.values()).forEach(System.out::println); } }
輸出
Contents of the enum are: SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY
廣告