黑马程序员:Java培训、Android培训、iOS培训、.Net培训

          JAVA集合-数组基础

一、声明、创建和赋值

1、声明、创建:elementType[] arrayRefVar = new elementType[arraySize]; 例如:

      double[] myList = new double[5];

2、默认赋值:当创建数组后,数组的元素被赋予默认值,数值型为0、char型为’\u0000’、

            boolean型为false、Object为null。

      显式初始化:arrayRefVar = {value1, value2, ……, value k}; 例如:

          myList = {1.0D, 2.0 D, 3.0 D, 4.0 D, 5.0 D };

3、声明、创建和初始化合为一体:elementType[] arrayRefVar = { value1,……, ,value k }

        注:下面的语句是错误的,没有开辟内存空间

             double[] list;

             list = {1.0D, 2.0 D, 3.0 D, 4.0 D, 5.0 D };

二、数组大小(元素个数)和下标

    1、数组大小:可以使用arrayRefVar.length求得数组的大小。例如,myList.length为5。

    2、数组下标:0 <= i < arrayRefVar.length

三、数组复制

    1、使用循环语句逐个复制数组的元素

       1)for()语句,使用下标

       2)for(:)增强型语句。

    2、使用System类的静态方法arraycopy(sourceArray, src_pos, targetArray, tar_pos, length)

        注:使用arraycopy()之前,必须为targetArray开辟内存空间。

    3、使用clone()方法复制数组。

四、多维数组

    1、与一维数组的声明、创建和初始化类似,只是多维数组在一维数组的基础上添加维数。例如:

         (1)  int[][] matrix = new int[3][3];

             matrix = {{1,1,1}, {1,1,1}, {1,1,1}}

         (2) 锯齿数组

             int[][] triangleArray = { {1, 2, 3, 4},

                                 {1, 2, 3,},

                                 {1, 2},

                                 {1}};

         (3)与锯齿数组等价

 int[][] triangleArray = new int[5][];

            triangleArray[0] = new int[5];

            triangleArray[1] = new int[4];

            triangleArray[2] = new int[3];

            triangleArray[3] = new int[2];

            triangleArray[4] = new int[1];

            注:new int[][]的语法是错误的,我们必须指明第一个下标:new int[5][]。

    2、二维数组的长度:二维数组实质是一个数组,其元素是一维数组,所以,其长度是其元素的长度之和。例如:triangleArray

            int length = 0;

 for(int row = 0; row < triangleArray.length; row++)//遍历二维数组元素

               for(int column = 0; column < triangleArray[row].length; column++)

                   length++;