簡體   English   中英

如何在 java 中使用 m(rows)、n(cols) 初始化 2D 數組?

[英]How do i initialize a 2D Array with m(rows), n(cols) in java?

我想初始化一個大小為 2n-1(rows), n(cols) 的二維數組列表

    int num = 3; 
    // declare an arrayList of ArrayLists or 2D ArrayList
    ArrayList<ArrayList<Integer>> list =  
           new ArrayList<ArrayList<Integer>>(num);

上述語法是創建大小為 Num*Num 的 2D ArrayList。

在我們用 M*N 初始化的數組中,我們可以用 ArrayLists 做類似的事情嗎? 如果是,如何?

我想用 M*N 初始化語法。

與必須初始化為固定長度的 Array 不同,ArrayList 可以動態增長,您不必擔心MN來初始化它。 當您想要填充 ArrayList 並且如果將集合填充到MN是您的特定要求時,您會擔心,那么在聲明 ArrayList 之后執行此操作。 所以, ArrayList<ArrayList<Integer>> list = new ArrayList<>(); 是你所需要的全部。

有多種方法可以將 ArrayLists 填充到所需的M (行)和N (列)。 這是一種相對不錯的視覺方式。

ArrayList<ArrayList<Integer>> list = new ArrayList<>();
ArrayList<Integer> innerList;
int m = 20;  // Rows
int n = 10;  // Columns 
int incrementer = 1;

for (int i = 0; i < m; i++) {
    innerList = new ArrayList<>();
    for (int j = 0; j < n; j++) {
        innerList.add(j + incrementer);
    }
    list.add(innerList);
    incrementer ++;
}
    
// Now to display (print) the 2D ArrayList into the Console Window:
for (ArrayList<Integer> inner : list) {
    for (Integer ints : inner) {
        System.out.printf("%-3s ", ints);
    } 
    System.out.println();
}

控制台應顯示:

1   2   3   4   5   6   7   8   9   10  
2   3   4   5   6   7   8   9   10  11  
3   4   5   6   7   8   9   10  11  12  
4   5   6   7   8   9   10  11  12  13  
5   6   7   8   9   10  11  12  13  14  
6   7   8   9   10  11  12  13  14  15  
7   8   9   10  11  12  13  14  15  16  
8   9   10  11  12  13  14  15  16  17  
9   10  11  12  13  14  15  16  17  18  
10  11  12  13  14  15  16  17  18  19  
11  12  13  14  15  16  17  18  19  20  
12  13  14  15  16  17  18  19  20  21  
13  14  15  16  17  18  19  20  21  22  
14  15  16  17  18  19  20  21  22  23  
15  16  17  18  19  20  21  22  23  24  
16  17  18  19  20  21  22  23  24  25  
17  18  19  20  21  22  23  24  25  26  
18  19  20  21  22  23  24  25  26  27  
19  20  21  22  23  24  25  26  27  28  
20  21  22  23  24  25  26  27  28  29  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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