Да, ArrayList<ArrayList<E>>
аналогичен двумерному массиву E
(E[][]
). Он имеет все общие различия между использованием List
и использованием массивов в Java (List
- это высокоуровневый API, поддерживает изменение размера, добавление элементов в произвольных позициях, ...).
Вы не относитесь к этому как к обычному List
, за исключением того, что элементы, которые он содержит, на самом деле являются List
объектами:
Инициализировать его:
ArrayList<ArrayList<E>> listOfLists = new ArrayList<ArrayList<E>>();
Итерация по нему:
for (ArrayList<E> innerList : listOfLists) {
doSomethingWithInnerList(innerList);
}
Добавить к этому:
ArrayList<E> newInnerList = new ArrayList<E>();
// add stuff to newInnerList
listOfLists.add(newInnerList);