ArrayList 元素的 ArrayList
ArrayList of Arraylist elements
我有一个 Integer(la) 的 ArrayList 和一个 Integer(L) 的 Arraylist 的 Arraylist
我需要从 la 中的矩阵中取出数字,然后添加到 L 中。
如果我从 la 中删除所有元素,L 是 [[],[],[]]
L 必须是 [[1,2,3],[4,5,6],[7,8,9]]
public static void main(String args[]) {
int [][]A = {{1,2,3},{4,5,6},{7,8,9}};
ArrayList<Integer> la = new ArrayList<Integer>();
ArrayList<ArrayList<Integer>> L = new ArrayList< ArrayList<Integer>>();
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
la.add(A[i][j]);
}
L.add(la);
la.clear();
}
System.out.println(L);
}
您正在重复使用 la
并清除它。由于此引用因其范围而被共享,因此您最终将得到空 ArrayLists
的 ArrayList
(L
)。您需要在内部循环中声明它。
int [][]A = {{1,2,3},{4,5,6},{7,8,9}};
ArrayList< ArrayList<Integer> > L = new ArrayList< ArrayList<Integer> >();
for(int i=0; i<3; i++ )
{
ArrayList< Integer > la = new ArrayList< Integer >();
for(int j=0; j<3; j++)
{
la.add(A[i][j]);
}
L.add(la);
}
注意:我还没有测试过,但它应该能让你更接近。
我不确定我是否完全理解你的意思,但我认为你需要复制一个 ArrayList。
ArrayList a;
ArrayList b = new ArrayList(a);
这样您就不会在多个地方引用相同的 ArrayList。
我有一个 Integer(la) 的 ArrayList 和一个 Integer(L) 的 Arraylist 的 Arraylist 我需要从 la 中的矩阵中取出数字,然后添加到 L 中。 如果我从 la 中删除所有元素,L 是 [[],[],[]]
L 必须是 [[1,2,3],[4,5,6],[7,8,9]]
public static void main(String args[]) {
int [][]A = {{1,2,3},{4,5,6},{7,8,9}};
ArrayList<Integer> la = new ArrayList<Integer>();
ArrayList<ArrayList<Integer>> L = new ArrayList< ArrayList<Integer>>();
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
la.add(A[i][j]);
}
L.add(la);
la.clear();
}
System.out.println(L);
}
您正在重复使用 la
并清除它。由于此引用因其范围而被共享,因此您最终将得到空 ArrayLists
的 ArrayList
(L
)。您需要在内部循环中声明它。
int [][]A = {{1,2,3},{4,5,6},{7,8,9}};
ArrayList< ArrayList<Integer> > L = new ArrayList< ArrayList<Integer> >();
for(int i=0; i<3; i++ )
{
ArrayList< Integer > la = new ArrayList< Integer >();
for(int j=0; j<3; j++)
{
la.add(A[i][j]);
}
L.add(la);
}
注意:我还没有测试过,但它应该能让你更接近。
我不确定我是否完全理解你的意思,但我认为你需要复制一个 ArrayList。
ArrayList a;
ArrayList b = new ArrayList(a);
这样您就不会在多个地方引用相同的 ArrayList。