创建数组的arraylist

kjm*_*kjm 5 java arrays string arraylist

我正在尝试创建一个字符串数组的数组列表.当我完成后,我希望数组列表看起来像这样:

[0,0], [0,1], [1,0], [1,1,]
Run Code Online (Sandbox Code Playgroud)

我试图定义一个数组,然后将其添加到数组列表中.然后重新定义一个数组并再次添加它.但是数组列表似乎只包含最后一个条目.看一看:

String[] t2 = new String[2]; 

ArrayList<String[]> list2 = new ArrayList<String[]>();

t2[0]="0";
t2[1]="0";
list2.add(t2);
t2[0]="0";
t2[1]="1";
list2.add(t2);
t2[0]="1";
t2[1]="0";
list2.add(t2);
t2[0]="1";
t2[1]="1";
list2.add(t2);

for (String[] tt : list2) 
{
System.out.print("[");
for (String s : tt)
System.out.print(s+" ");
System.out.print("]");
}
Run Code Online (Sandbox Code Playgroud)

输出是:

[1,1] [1,1] [1,1] [1,1]

关于如何将每个数组添加到我的数组列表的任何想法?`

ktm*_*124 6

问题是您要将相同的对象添加到ArrayList的每个索引.每次修改它时,您都在修改同一个对象.要解决此问题,您必须将引用传递给不同的对象.

String[] t2 = new String[2]; 

ArrayList<String[]> list2 = new ArrayList<String[]>();

t2[0]="0";
t2[1]="0";
list2.add(t2); 

t2 = new String[2]; // create a new array
t2[0]="0";
t2[1]="1";
list2.add(t2);

t2 = new String[2];
t2[0]="1";
t2[1]="0";
list2.add(t2);

t2 = new String[2];
t2[0]="1";
t2[1]="1";
list2.add(t2);
Run Code Online (Sandbox Code Playgroud)