L'array in java devo essere sempre inizializzati con la dimensione.
Puoi risolvere in 2 modi:
1) dichiari il tuo array di dimensione n e quando vedi che l'array si è riempito allochi un nuovo array di dimensione maggiore e ci copi il contenuto dell'array e il nuovo elemento.
2)Perché reinventare l'acqua calda esistono le Collection:
codice:
//CREO UNA LISTA DI TIPO ArrayList
List<Persona> collection= new ArrayList<Persona>(<Op. puoi passare il numero di elementi>);
//CREO UNA LISTA DI TIPO LinkedList
List<Persona> collection= new LinkedList<Persona>(<Op. puoi passare il numero di elementi>);

//CREO UNA LISTA DI TIPO Vector
Vector<Persona> collection = new Vector<Persona>(<Op. puoi passare il numero di elementi>);

//le principali operazioni che puoi eseguire su tali strutture sono :
collection.add(new Persona(.....));//aggiunge in coda
collection.get(i); restituisce l'elemento iesimo
Qui trovi i tutorial ufficiali sulle collections