码迷,mamicode.com
首页 > 编程语言 > 详细

java数组学习笔记

时间:2015-05-24 15:32:05      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

发现自己基础知识学的不够扎实,慢慢回顾下!

数组创建:

  方式一: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); 两个数组必须是同类型数组

 

java数组学习笔记

标签:

原文地址:http://www.cnblogs.com/cqliucy/p/4525830.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!