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

更新於: 2019-07-30

16K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告