Converting List in int[] in Java
Beim Versuch, eine List zu int[], kommt es aufgrund der Einschränkungen von List.toArray() häufig zu Verwirrung. Obwohl es ein Objekt[] zurückgibt, kann dieses Array nicht direkt in int[] umgewandelt werden.
Um dieses Problem zu beheben, besteht ein gängiger Ansatz darin, eine Schleife zu verwenden, wie in der Frage gezeigt. Allerdings führt Java 8 eine effizientere und prägnantere Lösung mit Streams ein.
Verwendung von Streams
Mit der Einführung von IntStream bietet Java 8 eine bequeme Möglichkeit, primitive Typen zu verarbeiten wie int. Der folgende Code zeigt, wie ein List-Objekt konvertiert wird. to int[] using streams:
int[] example1 = list.stream().mapToInt(i -> i).toArray();
// OR
int[] example2 = list.stream().mapToInt(Integer::intValue).toArray();
Gedankenprozess
- Das einfache Stream#toArray gibt ein Object[]-Array zurück, was nicht erwünscht ist.
- IntStream ist ein spezieller Stream, der für int-Werte entwickelt wurde.
- Um einen IntStream zu erhalten Stream, wir verwenden die Methode mapToInt.
- mapToInt benötigt eine ToIntFunction, die Integer auf int abbildet. Dies kann als Lambda- oder Methodenreferenz implementiert werden.
- Integer#intValue entpackt die Ganzzahl, um den zugrunde liegenden int-Wert zu erhalten.
- Alternativ können wir einfaches Unboxing verwenden, um das Lambda in mapToInt zu ersetzen, Dies führt zu einem prägnanteren Beispiel1.
Dieser Stream-basierte Ansatz vereinfacht den Konvertierungsprozess und macht manuelle Schleifen überflüssig.
Das obige ist der detaillierte Inhalt vonWie konvertiert man eine Liste in Java effizient in ein int[]?. 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