Java 数组 - 二维数组

Java 数组 - 二维数组

文章目录

  • Java 数组 - 二维数组
    • 1.二维数组的概念
    • 2.二维数组的声明与初始化
      • 2.1 声明
      • 2.2 初始化
        • 2.2.1 静态初始化
        • 2.2.2 动态初始化
      • 2.3 二维数组的遍历
    • 3.二维数组的内存分配
    • 4.案例:杨辉三角
    • 补充: IDEA 调试技巧

1.二维数组的概念

概念:一维数组中的一维数组,即数组中元素,还是数组

二维数组	nums[3][5];

0	1  2  3  4  5		[0][0]	[0][1]	[0][2]	[0][3]	
1	6  7  8  9  1		[1][0]	[1][1]	[1][2]	[1][3]
2	4  1  2  3  1		[2][0]	[2][1]	[2][2]	[2][3]
    (0  1  2  3  4)
    
使用双下标访问二维数组中的元素,
第一个下标代表:行号(第一维下标),
第二个下标代表:列号(第二维下标)。

2.二维数组的声明与初始化

先声明、再分配空间:

  • 数据类型[][] 数组名;
  • 数组名 = new 数据类型[第一维长度][第二维长度];

声明并分配空间:

  • 数据类型[][] 数组名 = new 数据类型[第一维长度][第二维长度];

声明并赋值(繁):数据类型[][] 数组名 = new 数据类型[第一维长度][]; //不规则数组,自行new低维数组

声明并赋值(简):数据类型[][] 数组名 = { {v1,v2,v3},{v4,v5},{v6,v7,v8,v9} }; //显示初始化

2.1 声明

语法

//1. 声明
int[][] nums1;		//推荐
int nums2[][];

2.2 初始化

2.2.1 静态初始化

eg:

//2.1 静态初始化
nums1 = new int[][] {{10,20,30},{40,50,60}};
nums2 = new int[][] {{3,5},{7,9,11,13,15}};
//简写,必须一条语句完成
int[][] num3 = {{1,3,5},{7,9,11,13,15}};
2.2.2 动态初始化

eg:

//2.2 动态初始化
String[][] names = new String[2][3];
String[][] cities = new String[2][];
cities[0] = new String[3];
cities[1] = new String[5];
//修改元素
names[0][0]="张三";
names[0][1]="李四";
names[0][2]="王五";
names[1][0]="小红";
names[1][1]="小路";
names[1][2]="小吕";
System.out.println(names[0][0]);
System.out.println(names[0][1]);
System.out.println(names[0][2]);
System.out.println(names[1][0]);
System.out.println(names[1][1]);
System.out.println(names[1][2]);

2.3 二维数组的遍历

语法: 使用双重循环遍历进行遍历;

eg:

//二维数组遍历
System.out.println(names.length);
System.out.println(names[0].length);
System.out.println(names[1].length);
for (int i = 0; i < names.length; i++) {
	for (int j = 0; j < names[i].length; j++) {
		System.out.println(names[i][j]+"\t");
	}
	System.out.println();
}

3.二维数组的内存分配

eg:

Java 数组 - 二维数组_第1张图片

//2. 初始化
//2.1 静态初始化
nums1 = new int[][] {{1,3,5},{10,20,30}};
nums2 = new int[][] {{1,3},{5,7,9}};

//2.2 动态初始化
String[][] names = new String[2][3];
String[][] cities = new String[2][];
cities[0] = new String[3];
cities[1] = new String[5];

4.案例:杨辉三角

eg:

Java 数组 - 二维数组_第2张图片

package StageOne.day08.demo;

/**
 * @author 胡昊龙
 * @version 1.0
 * @description: 杨辉三角
 * @date 2023/12/28 10:27
 */
public class demo02 {
    public static void main(String[] args) {
        int[][] tangle = new int[10][];
        for (int i = 0; i < tangle.length; i++) {
            tangle[i] = new int[i+1];
            for (int j = 0; j < tangle[i].length; j++) {
                if (j==0||i==j) {
                    tangle[i][j]=1;
                } else {
                    tangle[i][j] = tangle[i-1][j-1] + tangle[i-1][j];
                }
            }
        }
        System.out.println("---------------------遍历---------------------");
        for (int i = 0; i < tangle.length; i++) {
            System.out.printf("%"+2*(tangle.length-i)+"s","");
            for (int j = 0; j < tangle[i].length; j++) {
                System.out.printf("%-6d",tangle[i][j]);
            }
            System.out.println();
        }
    }
}

结果:

---------------------遍历---------------------
                    1   
                  1   1   
                1   2   1   
              1   3   3   1   
            1   4   6   4   1   
          1   5   10  10  5   1   
        1   6   15  20  15  6   1   
      1   7   21  35  35  21  7   1   
    1   8   28  56  70  56  28  8   1   
  1   9   36  84  126 126 84  36  9   1  

补充: IDEA 调试技巧

使用IDEA的调试技巧,帮助开发人员理解程序执行过程,从而发现问题,解决问题。

需要两个步骤:

  • 添加断点
  • 单步执行

快捷键:

  • F8 单步跳过 Step Over;
  • F7 单步进入 Step Into;
    1 9 36 84 126 126 84 36 9 1

你可能感兴趣的:(从零学Java,java,python,开发语言)