Двумерный ArrayList,JAVA

153
18 ноября 2019, 13:40
ArrayList<Integer> inter=new ArrayList<Integer>();
ArrayList<ArrayList<Integer>> ar = new ArrayList<>();
inter.add(2);
inter.add(3);
ar.add(inter);
inter.add(44);
inter.add(62);

почему,когда я добавляю элементы в лист inter,уже после того,как я добавил 2 и 3 в сам двумерный лист,он автоматически продолжает добавлять 44 и 62 хотя ниже,я нигде не указывал это?т.е. при выводе System.out.println(ar); результат будет 2 3 44 62

Answer 1

Вы создаете объект ArrayList inter и добавляете в него 2 элемента 2 и 3, потом в ar , как первый элемент добавляете объект inter, т.е. ссылку этого объекта, потом идет добавление 44 и 62, и ar уже через ссылку может работать с пространством памяти , куда ссылается объект inter. Поэтому ar имеет доступ к элементам 44 и 62

UPD:

ArrayList<Integer> inter=new ArrayList<Integer>();
ArrayList<Integer> inter_one=new ArrayList<Integer>();
ArrayList<ArrayList<Integer>> ar = new ArrayList<>();
inter.add(2);
inter.add(3);
inter_one.add(44);
inter_one.add(62);
ar.add(inter);
ar.add(inter_one);

UPD: Вариант, который предлогал реализовать в комментариях

READ ALSO
Не корректный ввод текста в WebView

Не корректный ввод текста в WebView

Приложение грузит страницу с сайта в WebView ,на сайте нужно вводить данные в строкахПри вводе текста я не вижу что ввожу ,только после дополнительного...

143
Совет по реализации расписания

Совет по реализации расписания

хотел бы спросить как лучше сделать

85
Как передать Integer по ссылке

Как передать Integer по ссылке

В главном потоке создаётся объект, в данном случае типа IntegerПосле этого создаётся побочный поток, который этот объект как-то меняет, на этом...

141
int + &#39;\n&#39; - что происходит при таком условии?

int + '\n' - что происходит при таком условии?

При изучении в java цикла for написала простой цикл, который должен выводить все четные числа до 100 и оставлять между ними строкуЯ нашла в итоге...

113