您的位置:首页 > 编程语言 > Java开发

Java数组 一维数组,二维数组

2011-03-18 14:41 363 查看
一维数组
1) int[] a; //声明,没有初始化

2) int[] a = new int[5]; //初始化为默认值,int型为0

3) int[] a = {1,2,3,4,5}; //初始化为给定值班

4) int[] a = new int[]{1,2,3,4,5}; // 同3)
int[] a = new int[5]{1,2,3,4,5}; //错误,如果提供了数组初始化操作,则不能定义维表达式

5) int[] a;
a = new int[5]; //正确,同2)
int[] a;
a = {1,2,3,4,5}; //错误,数组常量只能在初始化操作中使用,如3)

6) int a[];
a[0] = 1; //错误,因为数组没有初始化,不能赋值。
a[1] = 2;

二维数组
1)int[][] a; //声明,没有初始化

2)int[][] a = new int[2][3]; //初始化为默认值,int型为0

3)int[][] a = {{1,2},{2,3},{3,4}}; //初始化为给定的值
int[][] a = {{1,2},{2,3},{3,4,5}}; //没有错,数组空间不是连续分配的,所以不要求每一堆的大小相同。

4)int[][] a = new int[2][];
int[0] = new int[3]; //a[0]其实就是一个数组
int[1] = new int[4]; //每一维的大小可以不一样

5)int[][] a = new int[][]{{1,2},{2,3},{3,4,5}}; //同3)
int[] a = new int[5]{{1,2},{2,3},{3,4,5}}; //错误,如果提供了数组初始化操作,则不能定义维表达式
int[][] a = new int[2][];
a[0] = {1,2,3,4,5}; //错误,数组常量只能在初始化操作中使用

6)int[][] a = new int[2][];
a[0][1] = 1; //错误,第二维没有初始化,不能赋值,NullPointerException异常

总结:
1、二维数组可以看成以数组为元素的数组;
2、不管一维还是二维,在使用前(赋值,访问)必须初始化,可以用new默认初始化,也可以用数组常量初始化;
3、Java中二维数组的声明和初始化应按照从高维到低维的顺序进行。

动态初始化:数组定义与数组分配空间和赋值的操作分开进行;
静态初始化:在定义数字的同时就为数组元素分配空间并赋值;
默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也按照成员变量的规则被隐士初始化。

实例:

// ~ 静态初始化 程序代码 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

public class Array2
{
public static void main(String args[]) {
int a[][] = {{1,2},{3,4,5,6},{7,8,9}} ;
for(int i=0 ; i <a.length ; i++) {
for(int j=0 ; j<a[i].length ; j++) {
System.out.println("a[" + i + "][" + j + "]=" + a[i][j]) ;
}
}
}
}

输出结果:

a[0][0]=1
a[0][1]=2
a[1][0]=3
a[1][1]=4
a[1][2]=5
a[1][3]=6
a[2][0]=7
a[2][1]=8
a[2][2]=9

// ~ 动态初始化 程序代码 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

public class Array2D
{
public static void main(String args[]) {
int i , j ;
String s[][] ;
s = new String[3][] ;
s[0] = new String[2] ;
s[1] = new String[3] ;
s[2] = new String[2] ;
for(i=0 ; i<s.length ; i++) {
for(j=0 ; j <s[i].length ; j++) {
s[i][j] = new String("我的位置是:" + i + "," + j) ;
}
}
for(i=0 ; i<s.length ; i++) {
for(j=0 ; j<s[i].length ; j++) {
System.out.println(s[i][j]) ;
}
}
}
}

输出结果:

我的位置是:0,0
我的位置是:0,1
我的位置是:1,0
我的位置是:1,1
我的位置是:1,2
我的位置是:2,0
我的位置是:2,1

参考资料,感谢
http://wenku.baidu.com/view/7e02d65e312b3169a451a4d3.html
http://gonglianying.javaeye.com/blog/655674
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: