zoukankan      html  css  js  c++  java
  • 二维数组简单使用

    二维数组的使用

    java 语言里提供了支持多维数组的语法。

    如果说可以把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格,像右图Excel中的表格一样。

    对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。其实,从数组底层的运行机制来看,其实没有多维数组。

    声明

    数据类型[][] 变量名;

    初始化

    格式1(动态初始化):

    语法

    int[][] arr = new int[3][2];

    解释

     定义了名称为arr的二维数组

     二维数组中有3个一维数组

     每一个一维数组中有2个元素

     一维数组的名称分别为arr[0], arr[1], arr[2]

     给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;

    格式2(动态初始化):

    语法

    int[][] arr = new int[3][];

    解释

    二维数组中有3个一维数组。

     每个一维数组都是默认初始化值null (注意:区别于格式1

     可以对这个三个一维数组分别进行初始化

      arr[0] = new int[3];    arr[1] = new int[1];   arr[2] = new int[2];

    注:int[][]arr = new int[][3];  //非法

    格式3(静态初始化):

    语法

    int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};

    解释

     定义一个名称为arr的二维数组,二维数组中有三个一维数组

     每一个一维数组中具体元素也都已初始化

     第一个一维数组 arr[0] = {3,8,2};

     第二个一维数组 arr[1] = {2,7};

     第三个一维数组 arr[2] = {9,0,1,6};

     第三个一维数组的长度表示方式:arr[2].length;

    注意

    注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。

    Java中多维数组不必都是规则矩阵形式

    二维数组的第一个[]必须有数组长度。

    使用

    一般和嵌套for一起使用

    int[][] a=new int[3][2];

    for (int i = 0; i < a.length; i++) {

    for (int j = 0; j < a[i].length; j++) {

    System.out.println(a[i][j]);

    }

    }

    杨辉三角

    //设置杨辉三角的行数

    int count = 10;

    //定义一个二维数组

    int[][] yangHui = new int[count][];

    //给二维数组赋值

    for(int i = 0;i < yangHui.length;i++){

    //动态初始化二维数组

    yangHui[i] = new int[i + 1];

    //给开头和结尾赋1

    yangHui[i][0] = yangHui[i][i] = 1;

    /*

    * 给非开头和结尾赋值,因为开头和结尾的值已经为1,所以开头和结尾的值都不用改。

    * j = 1 :是表示从每个数组的第二个数字开始,因为第一个数字的值已定

    * j < yangHui[i].length :是表示每个数组的最后一个数字不变。因为最后一个数字也是固定不变的

    */

    for(int j = 1;j < yangHui[i].length - 1;j++){

    yangHui[i][j] = yangHui[i -1][j] + yangHui[i - 1][j -1];

    }

    }

    //便利二维数组

    for (int i = 0; i < yangHui.length; i++) {

    for (int j = 0; j < yangHui[i].length; j++) {

    System.out.print(yangHui[i][j]+" ");

    }

    System.out.println("");

    }

  • 相关阅读:
    跟面试官侃半小时MySQL事务,说完原子性、一致性、持久性的实现
    谈谈程序员的非技术思维
    跟面试官侃半小时MySQL事务隔离性,从基本概念深入到实现
    面试官问,你在开发中有用过什么设计模式吗?我懵了
    关于校招面试要怎么准备,这里有一些过来人的建议
    数据库中间件漫谈
    「从零单排HBase 06」你必须知道的HBase最佳实践
    「从零单排HBase 05」核心特性region split
    《Scalable IO in Java》译文
    Java多线程同步工具类之Semaphore
  • 原文地址:https://www.cnblogs.com/houwenbo/p/11536601.html
Copyright © 2011-2022 走看看