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 并清除它。由于此引用因其范围而被共享,因此您最终将得到空 ArrayListsArrayList (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。