Durch Enum-Werte in Java iterieren

Suraj P 12 Oktober 2023
  1. Kurze Einführung in Enums (Enumeration) in Java
  2. Iterieren Sie Enum-Werte mit der for-Schleife in Java
  3. Iterieren Sie Enum-Werte mit der forEach-Schleife in Java
  4. Enum-Werte mit java.util.Stream durchlaufen
  5. Abschluss
Durch Enum-Werte in Java iterieren

In diesem Artikel lernen wir, wie man Enums (Enumeration) in Java durchläuft.

Kurze Einführung in Enums (Enumeration) in Java

In der Programmiersprache Java helfen uns Aufzählungen, eine Gruppe von Konstanten darzustellen. Beispielsweise können verschiedene Planeten des Sonnensystems Aufzählungen mit den Namen Merkur, Venus, Erde, Mars, Jupiter usw. sein, die zu einem Aufzählungstyp namens Planeten gehören.

Enums werden verwendet, um unsere eigenen Datentypen zu definieren, d. h. benutzerdefinierte Datentypen.

In Java werden Aufzählungen mit dem Schlüsselwort enum deklariert. Im Gegensatz zu C/C++ sind Java-Enumerationen effizienter, da wir Methoden, Konstruktoren und Variablen hinzufügen können.

Eine häufig gestellte Frage lautet: Wann und warum sollten sie verwendet werden? Wir sollten Aufzählungen verwenden, wenn wir wissen, dass sich die Werte, die wir verwenden werden, nicht ändern werden, wie Farben, Tage des Monats, Tage der Woche, Namen von Planeten usw.

Sehen wir uns nun verschiedene Möglichkeiten zum Durchlaufen der Aufzählungen an.

Iterieren Sie Enum-Werte mit der for-Schleife in Java

Alle Enums in Java erweitern implizit die Klasse java.lang.Enum. Diese Klasse enthält eine Methode values(), die alle Werte innerhalb der Aufzählung zurückgibt.

Wir können diese Methode verwenden, um die Werte einer Aufzählung zu durchlaufen.

Beispielcode:

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");
    }
  }
}

Ausgang:

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

Da wir im obigen Code standardmäßig keinen expliziten Wert angegeben haben, werden den Enum-Konstanten Werte beginnend mit 0 zugewiesen.

Iterieren Sie Enum-Werte mit der forEach-Schleife in Java

Seit Java 8 wurde die forEach()-Methode der Iterable-Schnittstelle hinzugefügt. Daher haben alle Collections-Klassen in Java die foreach()-Methodenimplementierungen.

Wir können diese Methode mit einem Enum verwenden, aber wir müssen es zuerst in eine Sammlung umwandeln. Eine gängige Vorgehensweise ist die Verwendung der Methode Arrays.asList() der Klasse java.util.Arrays.

Diese Methode gibt uns die Listenansicht des Arrays.

Beispielcode:

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));
  }
}

Ausgang:

MERCURY
VENUS
EARTH
MARS
JUPITER

Enum-Werte mit java.util.Stream durchlaufen

Wir können java.util.Stream verwenden, um über die Enum-Werte zu iterieren. Dazu erzeugen wir zunächst mit der Methode Stream.of() einen Stream von enum.values().

Wir übergeben die enum.values() als Parameter an die Funktion Stream.of().

Beispielcode:

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);
  }
}

Ausgang:

MERCURY
VENUS
EARTH
MARS
JUPITER

Abschluss

In diesem Artikel haben wir verschiedene Möglichkeiten zum Iterieren über eine Aufzählung mit der for-Schleife, der forEach-Schleife und Stream in Java gelernt. Wir können jede dieser Methoden zum Iterieren verwenden, aber wenn es um die parallele Operation geht, ist Stream die bessere Option.

Autor: 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

Verwandter Artikel - Java Enum