PDA

View Full Version : [Java]Liste circolari.


sirus
25-05-2007, 23:33
Ho necessità di utilizzare una lista circolare all'interno di un progetto Java ma Nella documentazione non ho trovato nulla di utilizzabile che sia già pronto.
Sono quindi costretto a creare una nuova classe partendo da una più semplice e già implementata ArrayList per contenere i dati (ed effettuare l'override delle funzioni che devo andare ad utilizzare) e da un ListIterator/Iterator per permettere lo scorrimento?

k0nt3
26-05-2007, 11:09
al massimo ti tocca fare l'override dell'iteratore.. il resto è uguale a ArrayList, comunque strano che non esiste niente di simile nelle librerie!

sirus
26-05-2007, 11:18
al massimo ti tocca fare l'override dell'iteratore.. il resto è uguale a ArrayList, comunque strano che non esiste niente di simile nelle librerie!

A meno che mi sia sfuggito non ho proprio trovato quello che mi serviva. :boh:
Comunque ho effettuato l'estensione della classe ArrayList ed ho aggiunto/overridato ( :Puke: che termine) tutto quello che mi serviva, il comportamento è esattamente quello che volevo.
Facendo così ho anche potuto nascondere l'utilizzo degli iteratori aggiungendo direttamente next() e previuos() alla mia classe. ;)

k0nt3
26-05-2007, 11:27
A meno che mi sia sfuggito non ho proprio trovato quello che mi serviva. :boh:
Comunque ho effettuato l'estensione della classe ArrayList ed ho aggiunto/overridato ( :Puke: che termine) tutto quello che mi serviva, il comportamento è esattamente quello che volevo.
Facendo così ho anche potuto nascondere l'utilizzo degli iteratori aggiungendo direttamente next() e previuos() alla mia classe. ;)
forse il metodo più elegante è estendere AbstractSequentialList e implementare il list iterator e il metodo size. quasi mi viene voglia di fare sto esperimento :D

Mixmar
26-05-2007, 11:27
A meno che mi sia sfuggito non ho proprio trovato quello che mi serviva. :boh:
Comunque ho effettuato l'estensione della classe ArrayList ed ho aggiunto/overridato ( :Puke: che termine) tutto quello che mi serviva, il comportamento è esattamente quello che volevo.
Facendo così ho anche potuto nascondere l'utilizzo degli iteratori aggiungendo direttamente next() e previuos() alla mia classe. ;)

Non potresti usare la LinkedList? Mi sembra che con poche modifiche faccia ciò che vuoi...

sirus
26-05-2007, 11:42
Non potresti usare la LinkedList? Mi sembra che con poche modifiche faccia ciò che vuoi...

Quello che mi serve è avere un oggetto lista che ad ogni chiamata di next() mi restituisca sempre un elemento e se effettuo la chiamata al metodo step() (che ho aggiunto per ottenere un offset di un valore arbitrario rispetto alla posizione attuale) mi restituisca sempre l'elemento corretto mantenendo la circolarità senza che debba gestire ogni volta l'eccezione IndexOutOfBounds o chi per essa.
Sarebbe sufficiente anche un iteratore circolare ma non c'è nulla di simile. :(

k0nt3
27-05-2007, 12:16
Quello che mi serve è avere un oggetto lista che ad ogni chiamata di next() mi restituisca sempre un elemento e se effettuo la chiamata al metodo step() (che ho aggiunto per ottenere un offset di un valore arbitrario rispetto alla posizione attuale) mi restituisca sempre l'elemento corretto mantenendo la circolarità senza che debba gestire ogni volta l'eccezione IndexOutOfBounds o chi per essa.
Sarebbe sufficiente anche un iteratore circolare ma non c'è nulla di simile. :(
l'iteratore lo puoi implementare te nel momento in cui fai l'ovverride del metodo che restituisce l'iteratore ;)

sirus
27-05-2007, 12:21
l'iteratore lo puoi implementare te nel momento in cui fai l'ovverride del metodo che restituisce l'iteratore ;)

E' quello che ho fatto. ;)