[英]How to create a dynamic 2D Array in java
我正在阅读Java中的数组。 我想在Java中动态创建2D数组。 我知道我必须使用Arraylist,但我不知道如何实际将元素写入位置。
我来自C语言背景。 创建动态数组并使用for循环向其中添加元素非常容易。 但是,相同的逻辑在这里不起作用。 我读了另一个答案,但它们无济于事,它们正在使用高级概念或静态声明。
ArrayList<Integer> Arr1=new ArrayList<>();
ArrayList<ArrayList<Integer>> Arr2=new ArrayList<ArrayList<Integer>>();
for(int i=0;i<rows;i++){
for(int j=0;j<columns;j++){
Arr1.add(j);
}
Arr2.add(Arr1);
}
我的实现是错误的,但这是我能想到的最接近的用Java将元素写入动态2D数组的方法。
有人可以帮我了解如何将元素写入特定行和特定列
您需要为每个新行重新初始化Arr1。 像这样:
int rows = 3, columns = 4;
ArrayList<Integer> Arr1;
ArrayList<ArrayList<Integer>> Arr2 = new ArrayList<>();
for (int i = 0; i < rows; i++) {
Arr1 = new ArrayList<>();
for (int j = 0; j < columns; j++) {
Arr1.add(j);
}
Arr2.add(Arr1);
}
System.out.println(Arr2);
哪个应该出:
[[0,1,2,3],[0,1,2,3],[0,1,2,3]]
您可以使用以下代码
ArrayList<ArrayList<Integer>> Arr2=new ArrayList<ArrayList<Integer>>();
for(int i=0;i<rows;i++){
ArrayList<Integer> Arr1=new ArrayList<>();
for(int j=0;j<columns;j++){
Arr1.add(j);
}
Arr2.add(Arr1);
}
这个怎么样?
ArrayList<ArrayList<Integer>> Arr1=new ArrayList<ArrayList<Integer>>();
for(int i=0;i<rows;i++){
ArrayList<Integer> Arr2=new ArrayList<Integer>();
for(int j=0;j<columns;j++){
Arr2.add(j);
}
Arr1.add(Arr2);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.