Embora existam duas respostas excelentes explicando como fazer isso, sinto que falta outra resposta: na maioria dos casos, você não deve fazer nada.
As matrizes são complicadas; na maioria dos casos, é melhor usar a API de coleta .
Com Coleções, você pode adicionar e remover elementos e há Coleções especializadas para diferentes funcionalidades (pesquisa baseada em índice, classificação, exclusividade, acesso FIFO, simultaneidade etc.).
Embora seja bom e importante saber sobre Arrays e seu uso, na maioria dos casos, o uso de Coleções torna as APIs muito mais gerenciáveis (é por isso que novas bibliotecas como o Google Guava dificilmente usam Arrays).
Então, para o seu cenário, eu preferiria uma lista de listas, e eu a criaria usando Goiaba:
List<List<String>> listOfLists = Lists.newArrayList();
listOfLists.add(Lists.newArrayList("abc","def","ghi"));
listOfLists.add(Lists.newArrayList("jkl","mno","pqr"));