Domanda riguardante LinkedList in Java

0

Quando stavo leggendo un libro per SCJP, mi sono imbattuto nel seguente paragrafo.

A LinkedList is ordered by index position, like ArrayList, except that the elements are doubly-linked to one another. This linkage gives you new methods (beyond what you get from the List interface) for adding and removing from the beginning or end, which makes it an easy choice for implementing a stack or queue. Keep in mind that a LinkedList may iterate more slowly than an ArrayList, but it's a good choice when you need fast insertion and deletion..

Cosa rende una LinkedList per iterare più lentamente di una ArrayList?

    
posta Vinoth Kumar C M 23.03.2011 - 07:15
fonte

2 risposte

2

Ecco una risposta da StackOverflow che lo spiega abbastanza bene:

link

Fondamentalmente, ArrayList è contigua dove non è LinkedList. L'incremento alla successiva posizione in memoria con ArrayList viene considerato più veloce che passare alla posizione successiva tramite un riferimento in LinkedList. Inoltre, il mantenimento di LinkedList comporterebbe un sovraccarico per mantenere due serie di riferimenti per una lista doppiamente collegata.

    
risposta data 23.03.2011 - 07:27
fonte
0

Non ho guardato a queste classi in Java ma tipicamente un array sarà più veloce di un elenco collegato perché in un elenco collegato l'elenco è costituito da una serie di nodi che ciascuno di un "link" al nodo successivo nella sequenza. Quindi quando chiedi il decimo elemento deve scorrere tra 10 elementi per tirare quello che vuoi. In un array (a meno che non mi sbagli), la richiesta di un elemento ti porta direttamente a quell'elemento.

    
risposta data 23.03.2011 - 17:34
fonte

Leggi altre domande sui tag