Premesso che questa cosa viene implementata automaticamente dalla classe Vector, sì è possibile, utilizzando il trucchetto della classe Vector. Supponiamo che tu abbia un array di String:
codice:
String [] mioArray = new String[100];
... // inizializzo il mio array
// Ora lo ridimensiono: come?
// Creo un array della stessa dimensione e lo popolo con i valori del vecchio array:
String [] mioArrayCopia[mioArray.length];
for (int i=0; i<mioArray.length; i++) {
mioArrayCopia[i] = mioArray[i];
}
// Ora ricreo il mio array...
mioArray = new String[<nuova dim>] // <nuova dim> è la nuova dimensione dell'array
// ... e lo ripopolo con i suoi vecchi valori
for (int i=0; i<mioArrayCopia.length; i++) {
mioArray[i] = mioArrayCopia[i];
}
// ora il mio array è ridimensionato, posso buttare la copia
mioArrayCopia = null; // se sei in un metodo e mioArrayCopia è stato creato qui, non serve.
Ti consiglio di dare un'occhiata alla classe Vector, perchè ti agevola quando hai array di dimensione variabile nel tempo: se li autodimensiona e ti permette di contenere qualsiasi oggetto (Object).
Ciao.