Java入门-数组

一维数组

一维数组的定义

数据类型[] 数组名;             // 声明一维数组
数组名 = new 数据类型[个数];   // 分配存储空间 

上述两步骤可合并成:

数据类型[] 数组名 = new 数据类型[个数];

int[] x = new int[5]为例,x的数据类型是一个对int型数组对象的引用。

如果想让x不指向任何数组对象,则可以使用x = null语句。执行该语句之后,原来得数组对象不再被任何引用变量所引用,也就变成了【垃圾】,直到垃圾回收器将他释放。

一维数组初始化

数组在用new分配内存空间时,数组每个元素都会被自动赋初值:

  1. 整数赋值为 0
  2. 浮点数赋值为 0.0
  3. 字符赋值为'\0'
  4. 布尔型赋值为false
  5. 引用型赋值为null

我们在定义数组的时候可以同时进行初始化操作:int[] x = {1, 2, 3, 4, 5}

此时数组x就是一个容量为5个int数据型存储空间,其中每一个元素的值依次为1, 2, 3, 4, 5

一维数组得访问

  • 使用下标访问

  • for-each语句访问一维数组

    int[] arr = {1, 2, 3};
    for (int elem : arr)
        System.out.println(elem);
    

二维数组

二维数组的定义

数据类型[][] 数组名;
数组名 = new 数据类型[行数m][列数n];

上述方法定义了一个m行n列的矩形数组。它也可以进行合并写成:

数据类型[][] 数组名 = new 数据类型[行数m][列数n];

与C语言不同,Java可以定义非矩形二维数组。如下图:

int[][] x = new int[3][];
x[0] = new int[3];
x[1] = new int[2];

上述代码中x有三个元素,每个元素都是int[]类型得一维数组。相当于定义了三个一维数组引用变量,分别是int[] x[0]int[] x[1]int[] x[2]。然后再对元素x[0]x[1]赋值,由于x[2]没有被手动赋值,且又是一个引用变量,所以会被自动赋值x[2]=null

可以使用".length"属性获得数组得元素个数:

  1. x.length; // x的行数-3
  2. x[0].length; // x第一行的元素个数
  3. x[1].length; // x第二行的元素个数
  4. x[2]为null,不能使用lenght属性。

二维数组的初始化

int[][] arr = {{1,2,3},
	       {1,2},
	       {1,2,3,4,5,6}};

上述数组为不规则数组,矩形数组也可以使用上述方式进行初始化操作。

二维数组定义常见错误的形式

二维数组要求必须指出高层维数。

常见形式:

  1. int[][] arr = new int[10][] 只指定高层维数。
  2. int[][] arr = new int[10][2]指定高底层维数。
  3. int[][] arr = new int[][10]错误。
  4. int[][] arr = new int[][]错误。

猜你喜欢

转载自www.cnblogs.com/xxmmqg/p/12979014.html
今日推荐