(資料圖片)
在Java中二維數(shù)組被看作數(shù)組的數(shù)組,即二維數(shù)組為一個特殊的一維數(shù)組,其每個元素又是一個一維數(shù)組。Java 并不直接支持二維數(shù)組,但是允許定義數(shù)組元素是一維數(shù)組的一維數(shù)組,以達(dá)到同樣的效果。
// 創(chuàng)建方式和數(shù)組相似 第一個中括號表示行,第二個中括號表示列// 表示創(chuàng)建了擁有3個子數(shù)組且每個子數(shù)組都有兩個元素的二維數(shù)組int[][] arrarr1 = new int[3][2];// 表示創(chuàng)建了擁有3個子數(shù)組, 但子數(shù)組全部為null 的二維數(shù)組int[][] arrarr2 = new int[3][];// 靜態(tài)初始化, 創(chuàng)建二維數(shù)組并進(jìn)行賦值操作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是一維數(shù)組, y是二維數(shù)組
// 獲取單個元素System.out.println(arrarr3[1][2]);// 1// 查看arrarr2數(shù)組的元素for (int[] arr : arrarr2) { System.out.println(arr);}/*獲取到arrarr2中數(shù)組的地址值nullnullnull*/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 */
二維數(shù)組打印一個10行的楊輝三角
/*11 11 2 11 3 3 11 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();}
假設(shè)有一個矩陣為5行5列,該矩陣是由程序隨機(jī)產(chǎn)生的100以內(nèi)數(shù)字排列而成。下面使用二維數(shù)組來創(chuàng)建該矩陣,代碼如下:
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(); } }}
標(biāo)簽: