簡體   English   中英

如何在Java中創建動態2D數組

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM