Java基础——二维数组

Posted 再写一封

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础——二维数组相关的知识,希望对你有一定的参考价值。

二维数组

一、二维数组的初始化格式

二维数组的实质就是一维数组的数组

1、格式一

数据类型[][]  变量名  =  new 数据类型[m][n]
int[][] arr = new int[2][2];

m代表二维数组中一维数组的个数

n代表二维数组中所包含每一维数组所能包含的元素个数

2、格式二

数据类型[][] 变量名 = new 数据类型[m][];
int[][] arr = new int[2][];
arr[0] = new int[1];
arr[1] = new int[2];
arr[2] = new int[3];

注意:这种方式从存储角度讲更加灵活!


m表示这个二维数组有多少个一维数组
这一次没有直接给出一维数组的元素个数,可以动态的给出。

3、格式三

数据类型[][] 变量名 = new 数据类型[][]{{元素……},{元素……},{元素……}};

简化版格式:
数据类型[][] 变量名 = {{元素……},{元素……},{元素……}};

二、二维数组的遍历

public class TwoDimensionDemo1 {

  public static void main(String[] args) {
    //数据类型[][] 变量名 = new 数据类型[m][n];

    //int[][] a = new int[2][2];
    //System.out.println(a); //[[ 二维数组 I 整数类型 @ 4554617c二维数组的首地址
    //
    //System.out.println(a[0]); //[I@ 74a14482
    //
    ////访问二维数组中的元素
    //System.out.println(a[0][1]);
    //
    ////给二维数组中的变量赋值
    //a[0][1] = 100;
    //System.out.println(a[0][1]);


    //二维数组的初始化格式2
    //数据类型[][] 变量名 = new 数据类型[m][];
    //int[][] arr = new int[2][];
    //System.out.println(arr[0].length);
    //arr[0] = new int[1];
    //arr[1] = new int[2];

    //二维数组的访问同上

    //二维数组初始化格式3
    // 数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};

    int[][] c = new int[][]{{1, 2},{3},{4, 5, 6}};
    //System.out.println(c[0][1]);
    printTwoDemisionArray(c);
    //System.out.println(Arrays.toString(c));
  }

  public static void printTwoDemisionArray(int[][] arr) {
    // int[][] arr.length 表示的是二维数组的长度(可以包含的一维数组的个数)
    // int[] arr[i]是一个一维数组的引用变量  arr[i].length 二维数组中第i个一维数组的长度

    //双重循环,遍历二维数组

    //外层循环,控制访问二维数组中的哪个一维数组
    for (int i = 0; i < arr.length; i++) {

      //针对二维数组中的每一个一维数组的遍历
      for (int j = 0; j < arr[i].length; j++) {
        System.out.print(arr[i][j] + "  ");
      }
      //System.out.println(Arrays.toString(arr[i]));
    }

  }


}

打印杨辉三角

public class Exercise {

  public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);
    int n = scanner.nextInt();
    printTwoDemisionArray(triangleYang(n));

  }

  public static int[][] triangleYang(int n) {
    int[][] result;
    if (n == 1) {
      result = new int[][]{{1}};
      return result;
    }

    if (n == 2) {
      result = new int[][]{{1}, {1, 1}};
      return result;
    }

    //当 n>=3 的的时候
    //第二种初始化方式,初始化结果二维数组
    result = new int[n][];
    //先初始化第一行和第二行数据
    result[0] = new int[]{1};
    result[1] = new int[]{1, 1};

    //从第三行开始,计算杨辉三角的值
    for (int i = 2; i < n; i++) {
      result[i] = new int[i + 1]; //第i(从0开始编号)行, 元素个数 i + 1
      result[i][0] = 1;  //一行的第一个元素值为1
      result[i][i] = 1;  //一行的最后一个元素,值也为1

      for (int j = 1; j < i; j++) {
        //第i行第j列的值 = 第i - 1行第j列值 + 第i - 1行第j - 1列
        result[i][j] = result[i - 1][j] + result[i -1][j - 1];
      }
    }

    return result;

  }


  public static void printTwoDemisionArray(int[][] arr) {
    // int[][] arr.length 表示的是二维数组的长度(可以包含的一维数组的个数)
    // int[] arr[i]是一个一维数组的引用变量  arr[i].length 二维数组中第i个一维数组的长度

    //双重循环,遍历二维数组

    //外层循环,控制访问二维数组中的哪个一维数组
    for (int i = 0; i < arr.length; i++) {

      //针对二维数组中的每一个一维数组的遍历
      for (int j = 0; j < arr[i].length; j++) {
        System.out.print(arr[i][j] + "  ");
      }
      //System.out.println(Arrays.toString(arr[i]));
      System.out.println();
    }

  }

}


以上是关于Java基础——二维数组的主要内容,如果未能解决你的问题,请参考以下文章

java基础 ---- 二维数组

Java基础——二维数组

java基础:java中的二维数组

Java基础概述——二维数组

Java基础六

Java基础——数组例题&二维数组