Innanzitutto bisognerebbe vedere il "design" della tua classe/i. Spererei che, come minimo, tutto quello che stai facendo per interagire con l'utente lo fai nel contesto di una istanza della tua classe, in modo da poter tenere variabili di istanza come appunto per l'array.
È sufficiente tenere "in vita", per la durata della applicazione, 2 cose:
- un String[], inizialmente di lunghezza 0 (non nullo).
- un int che indica il numero "logico" di elementi correnti e che fa anche da indice per il successivo inserimento, inizialmente a 0.
Poi basta incapsulare la logica di espansione dell'array in un metodo es.
private void espandiArray(int numeroAggiunti)
Qui dentro la logica è semplice:
- istanzi un nuovo array di lunghezza uguale alla dimensione corrente + numeroAggiunti.
- ricopi i vecchi elementi. Basta un ciclo for o anche arraycopy di System che fa tutto.
- assegni il nuovo array alla variabile di istanza.
Il resto (ciclo di input) prosegue senza che debba sapere altro (a parte quel numero "logico" di elementi).



Rispondi quotando