View Full Version : [Java]Liste circolari.
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?
al massimo ti tocca fare l'override dell'iteratore.. il resto è uguale a ArrayList, comunque strano che non esiste niente di simile nelle librerie!
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. ;)
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
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...
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. :(
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 ;)
l'iteratore lo puoi implementare te nel momento in cui fai l'ovverride del metodo che restituisce l'iteratore ;)
E' quello che ho fatto. ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.