Eine effiziente Möglichkeit, ListInteger ohne Iteration in int [] (Array) zu konvertieren

8
%Vor%

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[]

zu konvertieren     
Tim Florian 07.01.2017, 10:55
quelle

2 Antworten

3

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%     
T.J. Crowder 07.01.2017, 11:16
quelle
9

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.

%Vor%

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.

    
Donald Raab 08.01.2017 00:22
quelle

Tags und Links