目錄
什麼是二維數組?
快速入門:
二維數組的使用:
使用方式 1: 動态初始化
文法:
案例示範:
使用方式 2: 動态初始化
文法:
使用方式 3: 動态初始化-列數不确定
案例示範
需求:使用動态初始化建立下面二維數組,并輸出。
代碼如下:
使用方式 4: 靜态初始化
文法:
分析代碼:
案例示範:
二維數組使用細節和注意事項
什麼是二維數組?
1. 從定義形式上看
int[][]
2. 一維數組的每個元素是一維數組, 就構成二維數組
3.二維數組的每個元素是一維數組, 是以如果需要得到每個一維數組的值,還需要再次周遊
快速入門:
/*
請用二維數組輸出如下圖形
0 0 0 0 0 0
0 0 1 0 0 0
0 2 0 3 0 0
0 0 0 0 0 0
*/
public class TwoDimensionalArray01 {
public static void main(String[] args) {
//什麼是二維數組:
//1. 從定義形式上看 int[][]
//2. 可以這樣了解,原來的一維數組的每個元素是一維數組, 就構成二維數組
int[][] arr = { {0, 0, 0, 0, 0, 0},
{0, 0, 1, 0, 0, 0},
{0,2, 0, 3, 0, 0},
{0, 0, 0, 0, 0, 0} };
System.out.println("二維數組的元素個數=" + arr.length);
//關于二維數組的關鍵概念
//(1) 二維數組的每個元素是一維數組, 是以如果需要得到每個一維數組的值
// 還需要再次周遊
//(2) 如果我們要通路第 (i+1)個一維數組的第j+1個值 arr[i][j];
// 舉例 通路 3, =》 他是第3個一維數組的第4個值 arr[2][3]
System.out.println("第3個一維數組的第4個值=" + arr[2][3]); //3
//輸出二維圖形
for(int i = 0; i < arr.length; i++) {//周遊二維數組的每個元素
for(int j = 0; j < arr[i].length; j++) {
//1. arr[i] 表示 二維數組的第i+1個元素 比如arr[0]:二維數組的第一個元素
//2. arr[i].length 得到 對應的 每個一維數組的長度
System.out.print(arr[i][j] + " "); //輸出了一維數組
}
System.out.println();//換行
}
}
}
二維數組的使用:
使用方式 1: 動态初始化
文法:
類型[][] 數組名=new 類型[大小][大小]
比如:
int a[][]=new int[2][3]
這裡面的2表示:有兩個一維數組。3表示:每個一維數組裡面有3個元素
案例示範:
public class TwoDimensionalArray02 {
public static void main(String[] args) {
int arr[][]; //聲明二維數組
arr = new int[2][3];//再開空間
arr[1][1] = 8;
for(int i = 0; i < arr.length; i++) {//周遊 arr 數組
for(int j = 0; j < arr[i].length; j++) {//對每個一維數組周遊
System.out.print(arr[i][j] +" ");
}
System.out.println();//換行
}
}
}
使用方式 2: 動态初始化
文法:
先聲明:類型 數組名[][];
再定義(開辟空間) 數組名 = new 類型[大小][大小] 指派
(有預設值,比如 int類型的就是 0)
使用方式 3: 動态初始化-列數不确定
案例示範
需求:使用動态初始化建立下面二維數組,并輸出。
代碼如下:
public class TwoDimensionalArray03 {
public static void main(String[] args) {
//建立 二維數組,一個有3個一維數組,但是每個一維數組還沒有開資料空間
int[][] arr = new int[3][];
for(int i = 0; i < arr.length; i++) {//周遊arr每個一維數組
//給每個一維數組開空間 new
//如果沒有給一維數組 new ,那麼 arr[i]就是null
arr[i] = new int[i + 1];
//周遊一維數組,并給一維數組的每個元素指派
for(int j = 0; j < arr[i].length; j++) {
arr[i][j] = i + 1;//指派
}
}
for(int i = 0; i < arr.length; i++) {//周遊arr輸出//周遊arr輸出
for(int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");//輸出arr的每個一維數組
}
System.out.println();//換行
}
}
}
使用方式 4: 靜态初始化
文法:
定義 類型 數組名[][] = {{值 1,值 2..},{值 1,值 2..},{值 1,值 2..}}
比如:
int[][] arr = {{1,1,1}, {2,2}, {3}};
分析代碼:
1. 定義了一個二維數組 arr
2. arr 有三個元素(每個元素都是一維數組)
3. 第一個一維數組有 3 個元素 , 第二個一維數組有 2 個元素, 第三個一維數組有 1 個元素
案例示範:
/*
int arr[][]={{4,6},{1,4,5,7},{-2}}; 周遊該二維數組,并得到和
*/
public class TwoDimensionalArray05 {
public static void main(String[] args) {
int arr[][]= {{4,6},{1,4,5,7},{-2}};
int sum = 0;
for(int i = 0; i < arr.length; i++) {//周遊每個一維數組
for(int j = 0; j < arr[i].length; j++) { //周遊二維數組
sum += arr[i][j];//将各個值累計到 int sum
}
}
System.out.println(sum);
}
}
二維數組使用細節和注意事項
(1) 一維數組的聲明方式有:
int[] x 或者 int x[]
(2) 二維數組的聲明方式有:
int[][] y 或者 int[] y[] 或者 int y[][]
(3) 二維數組實際上是由多個一維數組組成的,它的各個一維數組的長度可以相同,也可以不相同。比如: map[][] 是 一個二維數組
int map [][] = {{1,2},{3,4,5}}
由 map[0] 是一個含有兩個元素的一維數組 ,map[1] 是一個含有三個元素的一維數組構成,我們也稱為列數不等 的二維數組