标签:
发现自己基础知识学的不够扎实,慢慢回顾下!
数组创建:
方式一:type[] 变量名 = new type[元素个数]; ——如:int[] a = new int[10];
方式二:type 变量名[] = new type[元素个数]; ——如:int a[] = nwe int[10];
方式三:type[] a= new type[]{初始化值,逗号分隔} ——如:int[] a=new int[]{1,2,3}
初始化时,不能同时定义维和初始化值 ——例如 :int[] a=new int[3]{1,2,3}
多维数组:
多维数组时,第一维必须指定,同时必须由高维向低维定义——例如:int[][] a=new int[][3];即为错
type[][] a=new type[2][3];
type a[][]=new type[3][2];
int[][] a=new int[][]{{1,2,3},{2,2},{3,2,1}}
length:
只读成员length是数组对象的一部分,唯一一个可以访问的字段或方法。[]是访问数组对象的唯一方式。
多维数组,length只能计算第一维长度。
赋值引用:
JAVA数组初始化的时候拥有的只是对数组的引用,并没有给数组分配存储空间。因此,数组之间的复制不能简单地用“=”赋值,因为操作的是同一对象。
结果显示:
改变arrayB[0]的值,改变的是引用的数组,因此我们输出arrayA[0],其实和arrayB[0]一样。
数组复制:
1.for循环
2.System.arraycopy(src, srcPos, dest, destPos, length);
src:源数组;
srcPos:源数组要复制的起始位置;
dest:目的数组;
destPos:目的数组放置的起始位置;
length:复制的长度.
——System.arraycopy(arrayA,0,arrayB,0,1);要比for循环快,但是对象数组只是复制引用,不会有两份拷贝。
并且System.arraycopy()不会自动包装和拆包,需要数组为同一类型,或者转换为同类型。
数组比较:
Arrays.equals(arrayA, arrayB);相等条件:数组元素个数相等,对应元素相等
多维数组比较:Arrays.deepEquals(arrayA, arrayB); 两个数组必须是同类型数组
标签:
原文地址:http://www.cnblogs.com/cqliucy/p/4525830.html