我想初始化一個大小為 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 初始化語法。
uj5u.com熱心網友回復:
與必須初始化為固定長度的 Array 不同,ArrayList 可以動態增長,您不必擔心M和N來初始化它。當您想要填充 ArrayList 并且如果將集合填充到M和N是您的特定要求時,您會擔心,那么在宣告 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/486411.html
上一篇:為陣列生成無限顏色
下一篇:了解malloc和靈活的陣列成員
