基本概念

  1. public class Main {
  2. public static void main(String[] args) {
  3. //定义形式 int[][]
  4. //解读,由原来的一维数组的每一个元素变为一维数组,就构成了二维数组
  5. int[][] a = {{1,2,3},{4,5,6},{7,8,9}};
  6. //输出二维数组
  7. for(int i = 0; i < a.length; i++){
  8. //a[i].length得到对应的每个一维数组的长度
  9. for(int j = 0; j < a[i].length; j++){
  10. System.out.print(a[i][j] + "\t");
  11. }
  12. System.out.println();
  13. }
  14. //关于二维数组的概念
  15. System.out.println("二维数组元素的个数:" + a.length);
  16. //二维数组的每个元素为一维数组
  17. //访问第 i + 1 个一维数组的第 j + 1 个元素的为a[i][j]
  18. }
  19. }

image.png

动态初始化

  • 语法:类型[][] 数组名 = new 类型[大小][大小]
  • 例子:int a[][] = new int[2][3]; ```java package test;

public class Main { public static void main(String[] args) { int[][] a = new int[2][3]; //等价于 // int[][] a ;//声明二维数组 // a = new int[2][3];//再开辟空间 for(int i = 0; i < a.length; i++){ for(int j = 0; j < a[i].length; j++){ System.out.print(a[i][j] + “ “); } System.out.println(); } } }

  1. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/21705001/1635581500602-59f8737f-4530-42a3-856f-861b7dffc870.png#clientId=u6150a0b9-c539-4&from=paste&height=241&id=ucaf02656&margin=%5Bobject%20Object%5D&name=image.png&originHeight=188&originWidth=592&originalType=binary&ratio=1&size=99827&status=done&style=none&taskId=uc162ab69-7263-456a-b308-2690b965bfc&width=759)
  2. <a name="XMz3f"></a>
  3. # 列数不定的动态初始化
  4. ```java
  5. public class Main {
  6. public static void main(String[] args) {
  7. //创建二维数组,一共含3个一维数组,但是每个一维数组还未开辟空间
  8. int[][] a = new int[3][];
  9. for(int i = 0; i < a.length; i++){//遍历a中的每一个一维数组
  10. //给每一个一维数组开辟空间 new
  11. //如果没有给一维数组 new,那么a[i]就是null
  12. a[i] = new int[i + 1];
  13. //遍历一位数组,并给每一个元素赋值
  14. for(int j = 0; j < a[i].length; j++){
  15. a[i][j] = i + 1;
  16. }
  17. }
  18. System.out.println("输出数组中的元素");
  19. for(int i = 0; i < a.length; i++){
  20. for(int j = 0; j < a[i].length; j++){
  21. System.out.print(a[i][j] + " ");
  22. }
  23. System.out.println();
  24. }
  25. }
  26. }

image.png

静态初始化

  • 语法:类型[][] 数组名 = {{数据1,数据2,……},{数据1,数据2,……},{数据1,数据2,……}};
  • 例子:int a[][] = {{1,2,3},{4,5},{6}};

    1. public class Main {
    2. public static void main(String[] args) {
    3. int[][] a = {{1,2,3},{4,5},{6}};
    4. System.out.println("输出数组中的元素");
    5. for(int i = 0; i < a.length; i++){
    6. for(int j = 0; j < a[i].length; j++){
    7. System.out.print(a[i][j] + " ");
    8. }
    9. System.out.println();
    10. }
    11. }
    12. }

    image.png

    细节

    一维数组的声明方式:

  • int[] x;

  • int x[];

二维数组的声明方式:

  • int[][] x;
  • int x[][];
  • int []x[];

二维数组实际上是由多个一维数组组成的,它的各个一维数组长度可以相同也可以不同;
比如:a[][]是一个二维数组
int[][] a = {{1,2},{3.4.5}};
该二维数组是由a[0]是一个含有两个元素的一维数组,a[1]是一个含有三个元素的一维数组组成,我们可以称之为列数不等的二维数组
image.png