Java笔记7:数组

    int[] a = {1,2,3,4 };     1,定义数组赋值时只能定义一次;2 只能在定义的时候才能赋值

        

        错误写法

        int[] a;

        a = {1,2,3,4};  


 b[1] = a[1]    数组之间相互赋值


Arrays.sort(数组名);

排序类

合法语句:


int[] ary;  
int ary[];
int[] ary[];
int[] ary = new int[3];
int[] ary = {};
int[] ary = {0,1,2};
int[] ary = new int[]{0,1,2};
int[][] ary;
int[][] ary = new int[3][];
int[][] ary = new int[3][3];
new int[]{0,1,2};

非法语句:
int[3] ary;
int ary[3];
int[] ary = new int[];
int[] ary = new int[3]{0,1,2};
int[3][] ary;
int[][] ary = new int[][3];
int[][] ary = new int[][];
new int[3]{0,1,2};

备注:

1、声明或者定义数组的时候,推荐遵循编码规约的要求,将[]加在数组类型的后面,而不是数组变量的后面,这样至少可以提高代码的可读性。

2、上述正确语句的最后一句是匿名数组,在数组只需要使用一次的场合出现。
3、推荐使用循环对数组进行初始化。JDK5.0环境可以使用collection-based for循环。

4、数组下标从0开始,下标越界不会出现编译错误,而是出现运行时异常(ArrayIndexOutofBoundsException)。

5、给数组分配空间的时候,可以分配长度为0的空间,这样的数组不能放入元素。

6、给数组分配空间与静态初始化不能一起使用。静态初始化的时候,JVM会根据初始化的元素个数,自动为数组分配空间。

7、数值型的基本数据类型数组,可以存放精度低的数值元素。
   数值精度从低到高:byte short(char) int long float double

8、引用数据类型数组中,如果数组类型是父类类型或者接口类型,则数组元素可以放入子类类型或者实现类的对象,称之为异构数组。

9、数组无论在哪里声明,只要分配了空间,就有默认元素值。
byte类型数组元素默认初始值:byte类型的0。
short类型数组元素默认初始值:short类型的0。
char类型数组元素默认初始值:''  ('\u0000')。
int类型数组元素默认初始值:0。
long类型数组元素默认初始值:0L。
float类型数组元素默认初始值:0.0F。
double类型数组元素默认初始值:0.0。
boolean类型数组元素默认初始值:false。
引用数据类型数组元素默认初始值:null。    
 
10、数组是引用数据类型。直接打印char[]类型的对象,会打印输出数组中字符;直接打印其他类型数组,会打印输出对象首地址。
 
11、虽然数组是引用数据类型,但是基本数据类型的数组,其中每个元素,仍然是基本数据类型的数值。引用数据类型,其中每个元素,是引用数据类型变量

数组时具有相同类型(或兼容类型)元素的集合。数组中的元素是有序的,可以通过下标来访问,下标从0开始,至lengh-1结束。在java中,数 组类型的变量是一种特殊的对象,而并非基本数据类型。数组是定长的,一经创建就不可改变长度。相对集合类来说,使用数组比较简单而且有着更快的运行速度。
001.数组声明举例:int[] arraynames;  在声明数组时不能指定数组的大小,例如 int[4] arraynames; 是错误的。                       

002.一维数组初始化:可以使用两种方式对数组进行初始化,int[] a={1,2,3,4,5,};     //最后一个元素的“,”可有可无   

                                                                                               int[] a= new int[5];  //数组中5个元素默认为0

对于第二种方式,也可以指定元素的值: int a= int[]{1,2,3,4,5};   如果未指定元素的值,那么元素会存在默认值,数值型为0,布尔型为false,引用类型为null。因为数组也是对象,所以数组元素的默认值与类中定义的 变量默认值相同。如果指定了元素的值,就不能在[]中指定数组的大小,例如不能写成:int[] a = new int[5]{1,2,3,4,5};   //错误

第二种方式可以在声明后使用,第一种方式只能与声明同时使用,例如:

int[] a ;

a={1,2,3}; //错误,必须在声明的同时初始化

int[] b;

b=new int[5];  //可以

b=new int[]{1,2};  //可以

003. 多维数组初始化:在java中多维数组可以是不规则的(每维的元素个数可以不同),在为多维数组分配空间时,一定要从高维到低维分配。因为多维数组实际上 就是数组的数组,即高维数组的每个元素也是数组,如果数组(高维)还没有分配空间,便无法为数组中的元素(低维)分配空间。例如:
int[][] a=new int[3][] ;//先分配高维,不能写成ing[][] a = new int[][3];
//高维数组的每个元素(即a[0],a[1],a[2])也是数组
a[0]=new int[2];
a[1]=new int[3];
a[2] =new int[4];
对于矩阵数组(每维的元素个数都相等),可以采用一种简便的分配方式;
int[][]a = new int[3][4][5];
上面的代码分配了一个三维数组,该数组有3个元素,每个元素是一个二维数组,每个二维数组有4个元素,每个元素是一个一维数组,每个一维数组有5个元素,每个元素为int类型


你可能感兴趣的:(数组)