Durch Enum-Werte in Java iterieren
- Kurze Einführung in Enums (Enumeration) in Java
-
Iterieren Sie Enum-Werte mit der
for
-Schleife in Java -
Iterieren Sie Enum-Werte mit der
forEach
-Schleife in Java -
Enum-Werte mit
java.util.Stream
durchlaufen - Abschluss
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.