Sie schaffen verschiedene Arten von Objekten. new ArrayList<>()
schafft eine java.util.ArrayList
, die hinzugefügt werden können, usw.
Arrays.asList()
eine Art verwendet, die auch bezeichnet werden ArrayList
geschieht, ist aber ein verschachtelter Typ (java.util.Arrays$ArrayList
) und nicht zulässt, dass Elemente hinzugefügt oder entfernt werden, . Es nur Wraps ein Array.
Nun, wenn Sie sich nicht um diese Unterschiede kümmern, enden Sie mit zwei ungefähr gleichwertige Implementierungen, die beide ein Array in der List<>
-Schnittstelle umhüllen. Ich wäre sehr überrascht zu sehen, dass sie in der Leistung in irgendeiner signifikanten Weise unterscheiden - aber wie immer, wenn Sie spezifische Leistungsbedenken haben, sollten Sie sie in Ihrem speziellen Kontext testen.
Wow, ich wusste gar nicht, dass ArrayList aus 'Arrays.asList()' eigentlich eine andere ArrayList ist als die java.util.ArrayList. – exception1
Das wusste ich auch nicht ... Wie es scheint, unterscheiden sich die 2 Varianten ein wenig in der Effizienz (zumindest auf meiner Maschine). Bei 100 Millionen Läufen benötigt die erste Variante ~ 1500 ms und die zweite ~ 900 ms – ParkerHalo