Il mio primo pensiero è stato "Sì, c'è una penalità di prestazioni perché Insert
deve spostare tutti gli elementi nella lista di uno slot per fare spazio al nuovo oggetto" - ma poi ho letto la domanda con più attenzione. Quindi:
In generale, Insert
prende (forse molto) più tempo perché ha bisogno di spostare tutti gli elementi già in lista per fare spazio per il nuovo elemento, quindi è un (n) O sul lunghezza dell'elenco (se l'elenco è pieno di capacità, sarà necessario ridimensionarlo, ma è ancora un'operazione O (n)). D'altra parte Add
aggiunge semplicemente il nuovo oggetto senza dover spostare nulla, quindi è più veloce - un'operazione O (1) (a meno che l'elenco non debba ridimensionare, come sopra).
In questo esempio specifico, in cui l'elenco è vuoto per iniziare, non ci sarà alcuna differenza di prestazioni.
Ovviamente tutto questo è un po 'discutibile perché è necessario scegliere i metodi in base a ciò che è l'intento a meno che non si disponga di un problema di prestazioni documentato.
Eric Lippert dice nel http://ericlippert.com/2012/12/17/performance-rant/ ** Se si dispone di due cavalli e si vuole sapere quale dei due è il più veloce allora corri i tuoi cavalli. ** –
@Prash 'Elenco' è un wrapper di array con ridimensionamento automatico. Non è un elenco collegato. –
TheEvilPenguin
@Soner Gönül - E se uno vince, importa perché? Penso che sia .. e voglio sapere perché .. –