La classe ArrayList di List – Lezione 31 di Java Avanzato

ArrayList: vettore dinamico di oggetti

Gli ArrayList sono una struttura dati che consente di incapsulare in Java un array dinamico di oggetti. Questa struttura dati si occupano dell’allocazione e della riallocazione dinamica in maniera trasparente per l’utilizzatore ad esempio quando vengono aggiunti oggetti, o quando vengono cancellati degli elementi, ecc.

Se l’array di ArrayList risulta pieno, avendo una dimensione dinamica, viene riallocato automaticamente in un vettore più grande. In genere, la dimensione del nuovo array avrà come dimensione il doppio della dimensione dell’array iniziale.

Graficamente ArrayList estende List da cui eredita molti metodi:

La classe ArrayList di List

Per gli ArrayList l’accesso agli elementi con i metodi get e set avvengono in tempo costante. Dato che per le LinkedList i metodi get e set hanno un tempo proporzionale alla lunghezza della lista, è stata introdotta l’interfaccia RandomAccess. Quest’interfaccia è vuota e funge da tag interface, il cui contratto indica che tutte le classi che implementano RandomAccess offrono l’accesso posizionale con i metodi get e set in tempo costante.

Molto simili ai Vector, si differenziano per il fatto che non sono Thread Safe (non sono sincronizzati), e per cui vengono usati quando non è richiesta la sincronizzazione dei metodi. Gli ArrayList sono molto più efficienti per la ricerca posizionale degli oggetti rispetto le liste.

Indice Lezione PrecedenteLezione Successiva

Pubblicato in Collezioni, Guide, Java, Programmazione Taggato con: , , , ,

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*