在Java中,数组属于引用类型。
数组是一种引用型的变量,而其每个元素是引用型变量的成员变量。
数组有一维数组与多维数组。
数组元素为基本数据类型的,则为一维数组,数组元素还为数组的,则为多维数组。
例如:二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。
数组的元素可以是基本数据类型,也可以是引用数据类型(对象或数组),
数组的使用步骤是 声明 →创建→初始化→使用
数组在声明时,Java并不给数组分配任何空间(与c++不同),仅仅创建了一个引用数组的存取地址。数组声明只是为了告诉系统有一个新的数组的名称与类型,数组本身并不能存放任何数据元素,使用数组之前,要用new创建数组,为数组分配指定长度的内存空间。
Java中的数组是静态数组,数组被创建后,其大小是不能改变的。
- 一维数组
看我
定义:
type [] arrayName; 或 type arrayName[];
此时未分配空间
用new来为它分配空间:arrayName = new type[arraySize];
例如:int [] a = new int[10];
此时分配空间且被赋予默认值(动态初始化)
整形为0,字符为\0,布尔型为false,引用型为null
初始化:
例子:int a[] = {1,2,3,4,5};
也可以在定义时初始化(静态初始化)。此时Java不要求数组为静态。
数组越界,在Java中是运行时错误,产生异常(数组的length字段);JVM在运行时判断,如果未越界则继续运行,如果越界则抛出异常。
- 多维数组
以二维数组为例,二位数组是特殊的一维数组,它的每个元素是一个一维数组。
定义:
例如int a[][];
未给空间
用new来给空间,有两种方法
(1)直接给每一维分配空间
int a[2][3];
(2) 从最高维开始,分别为每一个维分配空间
int a[][] = new int[2][];
a[0] = new int[3];
a[1]=new int[3];
初始化:直接赋值或者在定义时赋值(静态初始化)
例如:int a[][] = {{2,3},{3,4},{4,5}};
具体方法是array.length表示行数,array[row].length来表示row行的列数。这样当数组行数和列数不相等时,代码可以自动调整为正确的值。
sort方法
sort()函数的基本格式(默认排序为升序排序)
Arrays.sort(int[] a, int fromIndex, int toIndex);Arrays.sort(数组名,fromIndex,toIndex);
这种形式是对数组部分排序,也就是对数组a的下标从fromIndex到toIndex-1的元素排序,注意:下标为toIndex的元素不参与排序