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]; 

/**
*            ....
*/        

 

posted @ 2020-03-02 16:39  风陵  阅读(241)  评论(0编辑  收藏  举报