基本概念
在Java中二維陣列被看作陣列的陣列,即二維陣列為一個特殊的一維陣列,其每個元素又是一個一維陣列,
Java 并不直接支持二維陣列,但是允許定義陣列元素是一維陣列的一維陣列,以達到同樣的效果,
創建及初始化
// 創建方式和陣列相似 第一個中括號表示行,第二個中括號表示列
// 表示創建了擁有3個子陣列且每個子陣列都有兩個元素的二維陣列
int[][] arrarr1 = new int[3][2];
// 表示創建了擁有3個子陣列, 但子陣列全部為null 的二維陣列
int[][] arrarr2 = new int[3][];
// 靜態初始化, 創建二維陣列并進行賦值操作
int[][] arrarr3 = new int[][]{{1,23},{23,56,1},{1,4,7}};
int[][] arrarr4 = {{1,23},{23,56,1},{1,4,7}};
// 特殊寫法!!!
int[] x, y[]; // 此處 x是一維陣列, y是二維陣列
元素的獲取
// 獲取單個元素
System.out.println(arrarr3[1][2]);
// 1
// 查看arrarr2陣列的元素
for (int[] arr : arrarr2) {
System.out.println(arr);
}
/*
獲取到arrarr2中陣列的地址值
null
null
null
*/
for (int[] arr: arrarr3) {
for (int a: arr) {
System.out.print(a + " ");
}
System.out.println();
}
/*
1 23
23 56 1
1 4 7
*/
為子陣列賦值
arrarr2[0] = new int[2];
arrarr2[1] = new int[4];
arrarr2[2] = new int[1];
for (int[] arr : arrarr2) {
for (int tmp : arr) {
System.out.print(tmp + "\t");
}
System.out.println();
}
/*
0 0
0 0 0 0
0
*/
練習
二維陣列列印一個10行的楊輝三角
/*
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
...
第一行一個元素, 第n行有n個元素
每行的第一個元素和第二個元素都是1
從第三行開始 對于非第一個和最后一個元素的元素:
*/
yanghui[i][j] = yanghui[i - 1][j - 1] + yanghui[i - 1][j];
int[][] yangHui = new int[10][];
for (int i = 0; i < 10; i++) {
yangHui[i] = new int[i + 1];
for (int j = 0; j < yangHui[i].length; j++) {
if (j == 0 || j == yangHui[i].length - 1) {
yangHui[i][j] = 1;
} else {
yangHui[i][j] = yangHui[i - 1][j - 1] + yangHui[i - 1][j];
}
}
}
for (int i = 0; i < yangHui.length; i++) {
for (int j = 0; j < yangHui[i].length; j++) {
System.out.print(yangHui[i][j] + "\t");
}
System.out.println();
}
假設有一個矩陣為5行5列,該矩陣是由程式隨機產生的100以內數字排列而成,下面使用二維陣列來創建該矩陣,代碼如下:
public class Test{
public static void main(String[] args){
int[][] matrix = new int[5][5];
for(int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix[i].length; j++) {
matrix[i][j] = (int)(Math.random() * 100);
}
}
for(int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + "\t");
}
System.out.println();
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/549830.html
標籤:Java
上一篇:Java構建樹結構的公共方法
