[英]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.