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

一维数组
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
 
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值