toArray(new MyClass[0]) oder toArray(new MyClass[myList.size()])?
Im Kontext von Java ArrayLists: Mit der toArray-Methode kann eine ArrayList in ein Array eines bestimmten Typs konvertiert werden. Die Wahl zwischen der Verwendung eines leeren Arrays oder eines Arrays mit der genauen Größe der Liste kann sich jedoch auf die Leistung auswirken.
Überlegungen zur Leistung
Intuitiv scheint es, dass die Voreinstellung der Ein Array wie in toArray(new MyClass[myList.size()]) wäre effizienter. Mikro-Benchmarking zeigt jedoch, dass die Verwendung eines leeren Arrays, toArray(new MyClass[0]), den Presizing-Ansatz durchweg übertrifft, insbesondere bei größeren Listen.
Warum leere Arrays schneller sind
Diese kontraintuitiv schnellere Leistung ist auf JVM-Optimierungen zurückzuführen. Der JVM- und JIT-Compiler verfügt über integrierte Optimierungen zum Erstellen und Initialisieren von Arrays, die beim manuellen Erstellen des Arrays nicht verwendet werden.
Auswirkungen auf die reale Welt
Während die Während der Leistungsunterschied bei kleinen Arrays möglicherweise nicht signifikant ist, kann er bei größeren Arrays spürbar werden. Daher wird für leistungskritische Situationen oder optimierte innere Schleifen die Verwendung von toArray(new MyClass[0]) empfohlen.
Zusammenfassung
Entgegen den anfänglichen Erwartungen ist die Verwendung von an Ein leeres Array (toArray(new MyClass[0])) für ArrayLists weist im Vergleich zur Voreinstellung des Arrays eine bessere Leistung auf. Dies wird auf JVM-Optimierungen zurückgeführt, die die Array-Erstellung und -Initialisierung effizient handhaben, was bei der manuellen Erstellung des Arrays nicht genutzt werden kann.
Das obige ist der detaillierte Inhalt von`toArray(new MyClass[0]) oder toArray(new MyClass[myList.size()]): Was ist schneller für Java ArrayLists?`. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!