二維數組
數組的數組---二維數組的每一個元素是一個一維數組
定義格式
數據類型[][] 數組名 = new 數據類型[二維數組的長度/包含的一維數組的個數][每個一維數組的長度];
int[][] arr = new int[3][5];---定義了一個整型的二維數組,其中包含3個一維數組,每個一維數組可以存儲5個整數
arr[0]---下標為0的位置上的一維數組
arr[1][3]---如果要獲取具體的元素需要兩個下標
數據類型[][] 數組名 = new 數據類型[二維數組的長度/包含的一維數組的個數][];
int[][] arr = new int[3][];----表示一個包含了三個整型的一維數組的二維數組(-------------這句話好好理解------------------------)
數據類型[][] 數組名 = {{元素},{元素1, 元素2},……};
int[][] arr = {{2,5},{1},{3,2,4},{1,7,5,9}};
注意:[]在變量名前的時候,是緊跟數據類型的;如果[]在后,則是屬於當前變量名。
二維數組的應用
二維數組的長度:數組名.length ---每個一維數組:數組名[下標].length
二維數組的遍歷---兩重for循環
for(int i = 0; i < arr.length; i++){ //遍歷二維數組,遍歷出來的每一個元素是一個一維數組 for(int j = 0; j < arr[i].length; j++){ //遍歷對應位置上的一維數組 System.out.println(arr[i][j]); } }
二維數組的反轉---頭尾交換
for(int start = 0, end = arr.length -1; start < end; start++,end--){ int[] temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; }
從控制台輸入行數,打印對應的楊輝三角
//從控制台獲取行數 Scanner s = new Scanner(System.in); int row = s.nextInt(); //根據行數定義好二維數組,由於每一行的元素個數不同,所以不定義每一行的個數 int[][] arr = new int[row][]; //遍歷二維數組 for(int i = 0; i < row; i++){ //初始化每一行的這個一維數組 arr[i] = new int[i + 1]; //遍歷這個一維數組,添加元素 for(int j = 0; j <= i; j++){ //每一列的開頭和結尾元素為1,開頭的時候,j=0,結尾的時候,j=i if(j == 0 || j == i){ arr[i][j] = 1; } else {//每一個元素是它上一行的元素和斜對角元素之和 arr[i][j] = arr[i -1][j] + arr[i - 1][j - 1]; } System.out.print(arr[i][j] + "\t"); } System.out.println(); }
結果:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
楊輝三角用二維數組的理解:
arr[i][j] = arr[i -1][j] + arr[i - 1][j - 1]