Heim > Java > javaLernprogramm > Wie konvertiert man eine Liste mithilfe von Streams effizient in ein int[] in Java?

Wie konvertiert man eine Liste mithilfe von Streams effizient in ein int[] in Java?

DDD
Freigeben: 2024-12-23 20:20:24
Original
809 Leute haben es durchsucht

How to Efficiently Convert a List to an int[] in Java Using Streams?

Effiziente Konvertierung von List in int[] mit Java Streams

Problem:

Entwickler stoßen auf Herausforderungen, wenn sie versuchen, eine List zu int[] in Java. List.toArray() erzeugt ein Objekt[], das nicht direkt in Integer[] oder int[] umgewandelt werden kann.

Erste Lösung:

Eine häufig verwendete Lösung beinhaltet das Durchlaufen der Liste mithilfe einer Schleife, um jedes Element manuell dem entsprechenden Index im int[]-Array zuzuweisen.

Java 8 Stream Verbesserungen:

Mit Java 8 wurden jedoch Stream-Verbesserungen eingeführt, die einen präziseren und effizienteren Ansatz ermöglichen. Durch die Verwendung von IntStreams, die speziell für die Verarbeitung primitiver int-Typen entwickelt wurden, können wir den Konvertierungsprozess optimieren:

Lösung mit mapToInt() und Lambda:

int[] example1 = list.stream().mapToInt(i -> i).toArray();
Nach dem Login kopieren

The mapToInt ()-Methode transformiert jedes Element von Stream in int, was die Konvertierung in IntStream ermöglicht. Der Lambda-Ausdruck (i -> i) entpackt einfach die Ganzzahl.

Lösung mit mapToInt() und Methodenreferenz:

Alternativ können wir eine Methodenreferenz verwenden :

int[] example2 = list.stream().mapToInt(Integer::intValue).toArray();
Nach dem Login kopieren

Gedanke Prozess:

Stream#toArray() gibt standardmäßig ein Objekt[] zurück, daher nutzen wir mapToInt(), um Integer-Elemente in int zu konvertieren. IntStreams stellen native toArray()-Methoden bereit, die int[]-Arrays erzeugen.

Durch die Verwendung von IntStreams vermeiden wir die Notwendigkeit eines zusätzlichen Unboxings oder einer expliziten Konvertierung in Integer[] vor der Umwandlung in int[]. Diese Optimierung rationalisiert den Konvertierungsprozess und verbessert sowohl die Kürze als auch die Effizienz des Codes.

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

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage