• Java语法 数组


    1. 一维数组

    首先要声明, JAVA对于数组类型的声明方式如下。

    int a[];
    int[] a;

    数据类型 数组变量名[]

    数组类型[] 数组变量名

    第二种方式在类C语言里面非常常见,但是第一种简洁又好看。

    1.1 数组初始化

      正如  VB6里的Redim 和Dim 声明方式,我们必须给予数组一个初始化定义,否则数组将毫无意义。

      于是,我们为了给它赋予一些东西,我需要给它定长。

      这里要认识到一个关键词  "new".

      这个关键词非常重要,在OOP的世界里,到处都是可以new的。

      我们先说一下第一种初始化方式,静态初始化

      例如:

      

    int array[];
    array = {1,2,3,4,5};
    //使用大括号对它直接填充
    //int array[] = {1,2,3,4,5};

      还有,类似这种。

    int array[3];
    array[0] = 1;
    array[1] = 2;
    array[2] = 3;
    //这里要注意一下数组的上界。

      这里注意下数组的上界,这里小括号里填进去的数是数组的长度,也就是说这里面可以容纳多少个元素。如果你对array[3]赋值,则是越界行为,编译器会找不到元素3的位置。

      「再再再注意一下, JDK规范设定 数组的只能从0开始,所以不要像VB6一样搞一些-255 to 255的骚操作了。」

     静态的大致就是这些,接下来说一下第二种,动态初始化

      例如:  

    int a[];
    //用new定义长度
    a = new int[3];
    //直接用new声明
    int c = new int[4];
    
    /**
    *遍历赋值
    *for(int i = 0; i<c.length; i++){
      *c[i] = 1;    
    *}
    */

      是不是很简洁。接下来介绍一下多维数组的使用。

    2.多维数组

      有一维就有二三四五六七维,多维数组可以解决很多一维数组不能满足的问题,在Java中,多维数组在使用中是这样设定的。

      「高维在前,低维在后」,这是和VB6差不多。

       多维数组也有静态和动态初始化方式,

      静态初始化的方式:

    int a[][] = ({1,2,3},{11,12,13},{22,22,23}); //大括号赋值初始化
    int a[2][2]; //定长初始化
    /** 赋值:
    *a[0][0] = 1;
    *a[0][1] = 1;
    *a[1][0] = 1;
    *a[1][1] = 1;
    */

      动态初始化的方式:

      new 数据类型 [维长度] [维长度]

    1 //按照高维在先低维在后的顺序 二维 一维 这样写括号就可以了 
    2        int a[][];
    3         a = new int[3][4];

     3.奇葩数组

      书上记载里一种奇葩数组,声明了高维长却没有声明低维长,这种数组你碰之即越界,然后我Get到了这项新技巧,把它记下来。

      直接上代码。

    int a[] [] = new int [2] []; //缺少了低维长度
        a[0] = new int [2]; //补全初始化 这一步相当于把[0,0][0,1]给声明了。
        a[1] = new int [2]; 
    
    /**
    *            ....
    */        
  • 相关阅读:
    【leetcode】1415. The k-th Lexicographical String of All Happy Strings of Length n
    【leetcode】1413. Minimum Value to Get Positive Step by Step Sum
    【leetcode】1410. HTML Entity Parser
    【leetcode】1409. Queries on a Permutation With Key
    1, 2, and 4 symbols per clock中数据排列
    RGB转换成YCbCr
    RAW转换成RGB
    ROM的一种写法
    IP之ALTIOBUF仿真
    IP之ALTDDIO_in仿真
  • 原文地址:https://www.cnblogs.com/lingqingxue/p/12396226.html
Copyright © 2020-2023  润新知