合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
>[success] # 二维数组 * 二维数组本质上就是由多个一维数组摞在一起组成的数组,二维数组中 的每个元素都是一维数组,而一维数组中的每个元素才是数据内容,即`外层一维数组为行,内存的一维数组为列` * 二维数组的声明 * * `数据类型[][] 数组名称 = new 数据类型[行数][列数];` * * `数据类型[][] 数组名称 = {{元素1, 元素2,...}, ...};` * 二维数组只声明行不声明列 ~~~ public class ArrayArrayTest { public static void main(String[] args) { // 先声明行 int[][] ls = new int[2][]; // 后声明列 ls[0] = new int[5]; ls[1] = new int[4]; } } ~~~ >[danger] ##### 二维数组声明 * 声明一个两行两列数组 ~~~ [ [0, 0], [0, 0] ] ~~~ ~~~ public class ArrayArrayTest { public static void main(String[] args) { int[][] ls = new int[2][2]; // [[0, 0],[0, 0]] int[][] ls1 = { { 0, 0 }, { 0, 0 } }; } } ~~~ >[danger] ##### 赋值并打印 ~~~ public class ArrayArrayTest { public static void main(String[] args) { int[][] ls = new int[2][2]; int count = 0; for (int i = 0; i < ls.length; i++) { for (int j = 0; j < ls[i].length; j++) { ls[i][j] = count++; } } // [[0, 1],[2, 3]] for (int i = 0; i < ls.length; i++) { for (int j = 0; j < ls[i].length; j++) { System.out.print(ls[i][j] + " "); // 0 1 2 3 } } } } ~~~ >[danger] ##### 杨辉三角形 ~~~ /* 编程使用二维数组来实现杨辉三角的生成和遍历 */ import java.util.Scanner; public class ArrayArrayTriangleTest { public static void main(String[] args) { // 1.提示用户输入一个行数并使用变量记录 System.out.println("请输入一个行数:"); Scanner sc = new Scanner(System.in); int num = sc.nextInt(); // 2.根据用户输入的行数来声明对应的二维数组 int[][] arr = new int[num][]; // 3.针对二维数组中的每个元素进行初始化,使用双重for循环 // 使用外层for循环控制二维数组的行下标 for(int i = 0; i < num; i++) { // 针对二维数组中的每一行进行内存空间的申请 arr[i] = new int[i+1]; // 使用内层for循环控制二维数组的列下标 for(int j = 0; j <= i; j++) { // 当列下标为0或者列下标与当前行的行下标相等时,则对应位置的元素就是1 if(0 == j || i == j) { arr[i][j] = 1; } else { // 否则对应位置的元素就是上一行当前列的元素加上上一行前一列的元素 arr[i][j] = arr[i-1][j] + arr[i-1][j-1]; } } } // 4.打印最终生成的结果 for(int i = 0; i < num; i++) { for(int j = 0; j <= i; j++) { System.out.print(arr[i][j] + " "); } System.out.println(); } } } ~~~