Please enable Javascript to view the contents

Java 数组

 ·  ☕ 2 分钟  ·  🤣 lin

一维数组

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

1
2
int a[];
int[] a;

数据类型 数组变量名[]
数组类型[] 数组变量名
第二种方式在类C语言里面非常常见,但是第一种简洁又好看。

1.1 数组初始化

  正如  VB6里的Redim 和Dim 声明方式,我们必须给予数组一个初始化定义,否则数组将毫无意义。
  于是,我们为了给它赋予一些东西,我需要给它定长。
  这里要认识到一个关键词  “new”.
  这个关键词非常重要,在OOP的世界里,到处都是可以new的。
  我们先说一下第一种初始化方式,静态初始化。
  例如:
  

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

  还有,类似这种。

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的骚操作了。」
 静态的大致就是这些,接下来说一下第二种,动态初始化。
  例如:  

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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差不多。
   多维数组也有静态和动态初始化方式,
  静态初始化的方式:

1
2
3
4
5
6
7
8
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
3
1 //按照高维在先低维在后的顺序 二维 一维 这样写括号就可以了 
2        int a[][];
3         a = new int[3][4];

 3.奇葩数组

  书上记载里一种奇葩数组,声明了高维长却没有声明低维长,这种数组碰之即视为越界,我Get到了这项新的解决技巧,将它记下来。
  直接上代码。

1
2
3
4
5
6
7
int a[] [] = new int [2] []; //缺少了低维长度
    a[0] = new int [2]; //补全初始化 这一步相当于把[0,0][0,1]给声明了。
    a[1] = new int [2]; 

/**
*            ....
*/        

 

分享

风陵
作者
lin
A Student | Java Dev