Копирование ArrayList в двумерный ArrayList в Java

Как можно скопировать ArrayList в ArrayList> ? Например:

ArrayList<ArrayList<String>> k = new ArrayList<>();
ArrayList<String> m = new ArrayList<>();
m.add("m1");
m.add("m2");
m.add("m3");
m.add("m4");

Теперь m нужно скопировать в k. k.add(m) - не подходит, т.к. ссылки на значения m при m.clear() будут удалены и из k. Варианты, указанные в Копирование ArrayList - реализовать не удается, т.к. не удается адресоваться к конкретному "внутреннему" ArrayList. Как можно такое копирование осуществить?


Ответы (2 шт):

Автор решения: Z.John

если я вас правильно понял, можно так

k.add( new ArrayList<>(m) );
→ Ссылка
Автор решения: Ilshat Nasyrov

Проще всего если закинуть создав новую коллекцию

k.add(new ArrayList<String>(m));

или склонировать

k.add((ArrayList<String>)m.clone());
→ Ссылка