Хоча є два чудових відповіді, які розповідають про те, як це зробити, я відчуваю, що ще одна відповідь відсутня: У більшості випадків ви взагалі не повинні цього робити.
Масиви громіздкі, в більшості випадків вам краще використовувати API Collection .
За допомогою колекцій ви можете додавати та видаляти елементи, а також існують спеціалізовані колекції для різних функціональних можливостей (пошук на основі індексу, сортування, унікальність, FIFO-доступ, паралельність тощо).
Хоча, звичайно, добре і важливо знати про масиви та їх використання, у більшості випадків використання колекцій робить API набагато більш керованими (саме тому нові бібліотеки на зразок Google Guava навряд чи використовують масиви взагалі).
Отже, для вашого сценарію я вважаю за краще список списків, і створив би його за допомогою Guava:
List<List<String>> listOfLists = Lists.newArrayList();
listOfLists.add(Lists.newArrayList("abc","def","ghi"));
listOfLists.add(Lists.newArrayList("jkl","mno","pqr"));