Gibt es eine effiziente Möglichkeit, List in ein Array zu konvertieren, ohne List explizit zu durchlaufen? Vielleicht ist es möglich mit Methoden wie:
%Vor% Ich weiß, dass es eine hier beschriebene Lösung gibt. Besonders interessiert war ich aber an einer effizienten Möglichkeit, List<Integer>
in int[]
Angesichts der Notwendigkeit, von Integer
in int
zu konvertieren, glaube ich nicht, dass Sie etwas effizienter finden als das, was Sie haben, wenn ich annehme, dass Sie von der Laufzeiteffizienz sprechen.
Sie können zuerst die Umwandlung in Integer[]
finden und dann ist das Schleifen möglicherweise effizienter (unten), aber möglicherweise auch nicht . Sie müssten es in Ihrem spezifischen Szenario testen und sehen.
Hier ist das Beispiel:
%Vor%Wenn Effizienz Ihr Hauptanliegen ist, dann können Sie Ihre Lösung mit einer indexierten for-Schleife auf dem listResult effizienter nutzen, wenn sie %Co_de% . Dies macht jedoch den Code viel weniger lesbar und Sie müssten ihn für Ihre Anwendungsfälle vergleichen, um zu sehen, ob er effizienter ist.
%Vor%Wenn Sie Java 8 verwenden und weniger Code schreiben möchten, können Sie die Streams-Bibliothek verwenden.
%Vor%Wenn Sie bereit sind, eine Bibliothek eines Drittanbieters zu verwenden, können Sie Eclipse-Sammlungen wie folgt aufrufen:
%Vor%Das Folgende ist etwas mehr Code, aber es ist die effizienteste Lösung, die ich mit Eclipse Collections erstellen könnte.
%Vor% Wenn Sie die Schnittstelle RandomAccess
verwenden müssen, ListIterate kann in Eclipse Collections verwendet werden.
Das Dienstprogramm java.util.List
verwendet einen anderen Iterationscode für ListIterate
lists und nicht RandomAccess
lists.
Am effizientesten wäre es, RandomAccess
zu a List<Integer>
in Eclipse-Sammlungen oder einer anderen Bibliothek, die primitive Auflistungen unterstützt.
Hinweis: Ich bin ein Committer für Eclipse Collections.