У меня есть ArrayList из ArrayList (alal) и ArrayList (al). Я хочу вставить al для alal, но я хочу, чтобы alal.get (0) содержал все, что у al, плюс добавленный элемент 100. Я подумал, что самый простой способ сделать это, прежде всего сделатьСоздание ArrayList из ArrayList, имеющего один дополнительный элемент по сравнению с другим ArrayList из ArrayList
alal.add (al);
, а затем получить доступ к его 0th элемент, и добавить 100, как
alal.get (0) .Add (100);
Однако проблема заключается в том, что содержимое al также изменяется, так как это объект, и поэтому alal имеет ссылку, а не значение.
Я пробовал ниже. Скажите, пожалуйста, если это правильный способ сделать это или предложить улучшения.
import java.util.ArrayList;
public class additionalal {
public static void main(String[] args) {
ArrayList<ArrayList<Integer>> alal = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> al = new ArrayList<Integer>();
al.add(1);al.add(2);al.add(3);
//WRONG
// alal.add(al);
// alal.get(0).add(100);
//CORRECT
ArrayList<Integer> alextra = new ArrayList<Integer>();
alextra.addAll(al);
alextra.add(100);
alal.add(alextra);
System.out.println(alal);
System.out.println(al);
}
}
В чем проблема? –
Если вы хотите, чтобы alal.get (0) возвращал содержимое списка al, тогда вы должны вставить al (на самом деле его копию) в элемент 0: 'alal.add (0, al)' –