Ich erhalte eine List
von Objekt A, dann ich Apache Commons Collection4
verwenden, um mit B Instanzen die erhaltenen List
aus mit A Instanzen zu transformieren.List.toArray (Object []) Leistung
listOfBs = (List<B>) CollectionUtils.collect(listOfAs, componentTransformer);
Doch schließlich muss ich eine Array
von Bs haben kein List
.
Also meine Frage ist, die schneller ist.
- die Liste konvertieren
CollectionUtils.collect
- ein Array CREATE
listOfBs.toArray(new B[listOfBs.size()])
Oder
- Schleife über die
listOfAs
- verändern jedes Ein Objekt zu einem B unter Verwendung von Objekt
- Hinzufügen jedes B Objekt auf ein Array (B [])
Der Unterschied zwischen dem ersten Ansatz und dem zweiten Ansatz ist, dass der erste Ansatz viel weniger Code hat, aber ich Ich bin mir nicht sicher, ob die Methode toArray eine versteckte Schleife oder teure Operationen enthält.
Was ich in der zweiten Ansatz sehe, ist, dass ich bin sicher, ich werde nur einmal über die listOfAs
Liste loopen.
Also welcher Ansatz ist schneller?
Warum nicht transformieren und sammeln in einem Schritt zu einem Array? Sie sind nicht gezwungen, 'CollectionUtils' zu verwenden. Noch besser, benutze einfach Java 8. –
Ich kann derzeit Java 8 nicht verwenden, obwohl ich gerne den Namen des Features, das Java 8 dafür bietet, kennen würde. Ich kann die Objekte loopen und transformieren, aber weniger Code ist besser. Wenn 'toArray' also keinen großen Leistungseinbruch verursacht, kann ich es verwenden. –
Ich denke nicht, dass es großen Unterschied gibt, wenn Sie einen Blick auf Code 'CollectionUtils.collect' es ist Looping durch Liste und transformierende Objekt, das ist Ihre ersten beiden Schritte von Ihrer alternativen Methode – user902383