数组

一、一维数组

1.声明:

(1)char []c;     推广情况:char []c1,c2,c3;可以声明三个一维数组

(2)char c[];(不推荐,据说是为了C系程序员便于理解)      无对应的推广情况,若只是char c1,c2,c3[];只是c3成为一维数组

2.创建:(09-24更新)

(1)没有引用:new char[5];实际上这样的语法会报错,必须赋值给一个引用。

(2)有引用:char []c=new char[5];或者char []c; c=new char[5];

注:不能没有数组长度,否则无法编译,但是长度可以是变量,例如:

int m=9;char []c=new int[m];是被允许的。

        char []a=new char[2];
        Integer [] b=new Integer[3];
        int  []c=new int [2];  
        boolean [] d=new boolean[2];
        System.out.println(a);         //char数组输出2个方块(不知道是什么?),等同于 System.out.println(new char[2]);
System.out.println(d);  //除char数组都输出地址,等同于 System.out.println(new boolean[2]); for(char s:a) { System.out.println(s); //遍历未初始化的char数组,输出2个方块,同上直接输出一样 } for(Integer s:b) { System.out.println(s); //遍历未初始化的Integer数组,输出null,包括未初始化的String及其他对象引用都是这样 } for(int s:c) { System.out.println(s); //未初始化的int输出0 } for(boolean s:d) { System.out.println(s); //未初始化的boolean输出false }

其实数组创建很简单,上面的篇幅都用在Java自动初始化上了,其余诸如long、short、byte、double、float都会被设置为0或者0.0.

3.初始化:

(1)普通数组:char []c={'a','b'};再次直接输出,会打印出ab,但例如int []={5,8,9};直接输出地址,也就是说除了char数组直接打印数组都会输出地址。

数组初始化和声明必须一起,否则会报错,例如:

char []a= new char[2];
a= {'a','b'};       //报错

提示报错Array constants can only be used in initializers数组只能在声明赋值?

正常赋值:

int [] b= {5,8,9};

 

(2)对象数组:String []s={"ab","cd"};或者String []s={new String("ab"),new String("cd")};都是等价的,原因在下一篇字符串说明。

Integer []i={1,2};或Integer []i={new Integer(1),new Integer(2)};

二、多维数组

1.声明

与一维数组相同有两种方式:int [][]m;(推荐) 可推广至int [][] m1,m2,m3;      

int m[][];(不推荐);

2,创建

(1)直接创建:int [][]m=new int[2][2];

(2)从高到低创建:

int [][]m=new int[2][];       //前两句等价于int[][] m;m=new int[2][]两句的组合
m[0]=new int[2];              
m[
1]=new int[2];

也是创建了一个2*2的二维数组。

注意不能从低到高创建:

int [][]m=new int[][2];     //报错,Cannot specify an array dimension after an empty dimension

3.初始化

普通:int[][] m={{1,2},{3,4}};

而不能写成

int [][]m=new int[2][];
m[0]= {5,6};

m[1]={7,8};  也是只能在声明时初始化。

对象:String [][] s={{new("aa"),new("bb")},{new("cc"),new("dd")}};

或者是等价地有:String [][]s={{"aa","bb"},{"cc","dd"}};

例如:

String[][]s= {{"aa","bb"},{"a","c"},{"ff"}};
        for(String str[]:s)
        {
            for(String ss:str)
            System.out.println(ss);           //二维数组的遍历
        }

 输出:aa

bb

a

c

ff

 

posted @ 2018-05-07 23:39  LeftBody  阅读(176)  评论(0编辑  收藏  举报