Concetto di iteratore su catena
Il concetto di iteratore su catena (interfaccia ListIterator) definisce il comportamento astratto di un contenitore in cui:
- I dati sono disposti in sequenza (cioè per ogni dato è definito un precedente ed un successivo).
- Nuovi dati possono essere inseriti in ogni punto.
- I dati possono essere rimossi da qualsiasi punto.
Un contenitore con un tale comportamento può essere molto utile, per cui si definisce un tipo di dati astratto, detto lista, con la seguente interfaccia:
Attenzione a non confondere la lista (che è un ADT) con la lista concatenata o catena (che è una struttura dati)!
La classe LinkedList può essere usata per realizzare l'interfaccia List. Ma non è necessario realizzare una lista mediante una catena, perché nella definizione dell'ADT Lista non vengono menzionati i nodi (è possibile realizzare l'ADT Lista usando un array).