Una List con dimensioni fisse

Non esiste una classe che estenda List per la quale sia possibile fissare un limite alla sua dimensione e che si comporti come un oggetto Queue nel caso si aggiunga un elemento oltre la dimensione massima prefissata.

In altre parole, vorrei una classe che

  • si comporti coma una List, in particolare con un metodo “get” da usare associato a un indice, come ad esempio ArrayList
  • con un numero massimo di elementi, oltre i quali, se si aggiungono altri elementi, la classe si comporta come una Queue con una logica di tipo FIFO (first-in first-out)

Il codice seguente è una possibile soluzione:

L’argomento del costruttore è un intero che fissa la dimensione della List e non può essere modificato, la classe che implementa List è inizializzata nel costruttore e in questo caso è una ArrayList.
Il metodo get(int index) restituisce l’oggetto alla posizione index senza rimuoverlo, il metodo add(T element) aggiunge l’oggetto in testa alla lista eventualmente rimuovendo un oggetto dalla coda in modo da avere non più di size elementi.

Ad esempio, il codice per creare un oggetto di 10 Float è

3 risposte a “Una List con dimensioni fisse”

  1. What is the purpose of getList() and setList(List list) methods ? I’m asking this because you can change the size of the underlaying list using setList(List list). Kinda defeat the purpose of the whole class no ?

    1. I think your argument is correct, the getter and setter methods for the list are dangerous, it is best to avoid a direct access to the inner list.
      I corrected the post.
      Thank you very much for your comment.

Lascia un commento

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

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.