Essi creano diversi tipi di oggetti. new ArrayList<>()
crea un java.util.ArrayList
, che può essere aggiunto a, ecc
Arrays.asList()
utilizza un tipo che sembra essere anche chiamato ArrayList
, ma è un tipo annidato (java.util.Arrays$ArrayList
) e non consentono elementi necessari per essere aggiunti o rimossi . È solo avvolge una matrice.
Ora, se non ti interessano queste differenze, ti ritroverai con due implementazioni approssimativamente equivalenti, entrambe che avvolgono un array nell'interfaccia List<>
. Sarei molto sorpreso di vederli diversi in termini di prestazioni in modo significativo - ma come sempre, se hai problemi di rendimento specifici per lo, dovresti testarli nel tuo particolare contesto.
fonte
2016-01-28 14:50:29
Wow, non sapevo nemmeno che ArrayList di 'Arrays.asList()' in realtà è un altro ArrayList di java.util.ArrayList. – exception1
Non lo sapevo neanche ... Come sembra, le 2 varianti differiscono un po 'in termini di efficienza (almeno sulla mia macchina). Su 100 milioni di corse la prima variante ha bisogno di ~ 1500 ms e la seconda ~ 900 ms – ParkerHalo