Java で列挙値を反復処理する

Suraj P 2023年10月12日
  1. Java での列挙型 (列挙型) の簡単な紹介
  2. Java で for ループを使用して列挙値を反復処理する
  3. Java で forEach ループを使用して列挙値を反復処理する
  4. java.util.Stream を使用して列挙値を反復処理する
  5. まとめ
Java で列挙値を反復処理する

この記事では、Java で列挙型 (列挙型) を反復処理する方法を学習します。

Java での列挙型 (列挙型) の簡単な紹介

Java プログラミング言語では、列挙は定数のグループを表すのに役立ちます。 たとえば、太陽系のさまざまな惑星は、水星、金星、地球、火星、木星などの名前の列挙であり、Planets という名前の列挙型に属します。

列挙型は、独自のデータ型、つまりユーザー定義のデータ型を定義するために使用されます。

Java では、列挙型は enum キーワードを使用して宣言されます。 C/C++ とは異なり、メソッド、コンストラクター、および変数を追加できるため、Java 列挙型はより効率的です。

発生する一般的な質問は、いつ、なぜそれらを使用するのかということです。 色、曜日、曜日、惑星の名前など、使用する値が変わらないことがわかっている場合は、列挙型を使用する必要があります。

それでは、列挙型を反復処理するさまざまな方法を見てみましょう。

Java で for ループを使用して列挙値を反復処理する

Java のすべての列挙型は、java.lang.Enum クラスを暗黙的に拡張します。 このクラスには、列挙型内のすべての値を返す values() メソッドが含まれています。

このメソッドを使用して、列挙型の値をループできます。

コード例:

import java.util.*;

public class Example {
  public enum Planets {
    MERCURY,
    VENUS,
    EARTH,
    MARS,
    JUPITER;
  }

  public static void main(String[] args) {
    Planets values[] = Planets.values();

    for (Planets obj : values) {
      System.out.println(obj + " is the " + obj.ordinal() + " planet in the solar system");
    }
  }
}

出力:

MERCURY is the 0 planet in the solar system
VENUS is the 1 planet in the solar system
EARTH is the 2 planet in the solar system
MARS is the 3 planet in the solar system
JUPITER is the 4 planet in the solar system

上記のコードでは、デフォルトで値を明示的に指定していないため、列挙定数には 0 から始まる値が割り当てられます。

Java で forEach ループを使用して列挙値を反復処理する

Java 8 以降、forEach() メソッドが Iterable インターフェースに追加されました。 したがって、Java のすべての Collections クラスには foreach() メソッドの実装があります。

このメソッドは Enum で使用できますが、最初に collection に変換する必要があります。 これを行う一般的な方法の 1つは、java.util.Arrays クラスの Arrays.asList() メソッドを使用することです。

このメソッドは、配列のリスト ビューを提供します。

コード例:

import java.util.*;

public class Example {
  public enum Planets {
    MERCURY,
    VENUS,
    EARTH,
    MARS,
    JUPITER;
  }

  public static void main(String[] args) {
    Arrays.asList(Planets.values()).forEach(temp -> System.out.println(temp));
  }
}

出力:

MERCURY
VENUS
EARTH
MARS
JUPITER

java.util.Stream を使用して列挙値を反復処理する

java.util.Stream を使用して列挙値を反復処理できます。 これを行うには、最初に Stream.of() メソッドを使用して enum.values() のストリームを作成します。

enum.values() をパラメーターとして Stream.of() 関数に渡します。

コード例:

import java.util.stream.*;

public class Example {
  public enum Planets {
    MERCURY,
    VENUS,
    EARTH,
    MARS,
    JUPITER;
  }

  public static void main(String[] args) {
    Stream.of(Planets.values()).forEach(System.out::println);
  }
}

出力:

MERCURY
VENUS
EARTH
MARS
JUPITER

まとめ

この記事では、Java で for ループ、forEach ループ、および Stream を使用して列挙型を反復処理するさまざまな方法を説明しました。 これらの方法のいずれかを使用して反復できますが、並列操作を扱う場合は、Stream の方が適しています。

著者: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub

関連記事 - Java Enum