Heim >Java >javaLernprogramm >Wie kann ich eine Liste in Java effizient in ein int[] konvertieren?

Wie kann ich eine Liste in Java effizient in ein int[] konvertieren?

Linda Hamilton
Linda HamiltonOriginal
2024-12-17 12:55:25605Durchsuche

How Can I Efficiently Convert a List to an int[] in Java?

Converting List in int[] in Java: Eine Lösung mit Java 8 Streams

Java-Programmierer stehen häufig vor der Notwendigkeit, eine List zu einem int[]-Array. Für diese Konvertierung kann zwar eine Schleife verwendet werden, diese ist jedoch ineffizient und fehleranfällig. Glücklicherweise bieten Java 8-Streams eine prägnantere und elegantere Lösung.

1. Verwenden von „mapToInt()“

Streams stellen die Methode „mapToInt()“ bereit, mit der Sie jedes Element eines Streams in einen primitiven int-Wert konvertieren können. Um eine List Um mit mapToInt() ein int[] zu erstellen, führen Sie die folgenden Schritte aus:

import java.util.List;

class ListToIntArrayExample {

    public static void main(String[] args) {
        List<Integer> list = List.of(1, 2, 3, 4, 5);

        // Convert the list to an int[] using mapToInt()
        int[] intArray = list.stream()
                              .mapToInt(Integer::intValue)
                              .toArray();

        // Print the converted int[]
        for (int i : intArray) {
            System.out.println(i);
        }
    }
}

In diesem Beispiel verwenden wir die Methode stream() für die Liste, um einen Stream von Ganzzahlen zu erstellen. Anschließend wenden wir die Methode „mapToInt()“ mit einem Lambda-Ausdruck an, der einfach den ganzzahligen Wert jedes Elements zurückgibt. Schließlich verwenden wir toArray(), um den Stream zurück in ein int[] umzuwandeln.

2. Verwenden von Unboxing

Da der Compiler weiß, dass das Ergebnis des Lambda in mapToInt() vom Typ int sein muss, können wir das Lambda vereinfachen, indem wir die explizite Umwandlung in int:

...
int[] intArray = list.stream()
                      .mapToInt(i -> i)
                      .toArray();
...
weglassen

3. Den generischen Typ ableiten

Da der Compiler den generischen Typ des Streams ableiten kann, können wir den Integer-Typ im Lambda weglassen:

...
int[] intArray = list.stream()
                      .mapToInt(i -> i)
                      .toArray();
...

Diese Methoden sind effizient und unkompliziert Möglichkeiten zum Konvertieren einer List zu einem int[] in Java.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Liste in Java effizient in ein int[] konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn