数组是多个相同类型数据的组合,实现对这些数据的统一管理
数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型
数组属引用类型,数组型数据是对象(object),数组中的每个元素相当于该对象的成员变量
数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化。
数组一旦初始化,其长度是不可变的.
数组初始化
java 语言中,声明数组时不能指定其长度.
数组元素的默认初始化:
泛型数组:
多维数组
一维数组:int[] x 或者int x[]
二维数组:int[][] y 或者 int[] y[] 或者 int y[][]
格式3(静态初始化):int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};
格式2(动态初始化):int[][] arr = new int[3][];
注:int[][]arr = new int[][3]; //非法
格式1(动态初始化):int[][] arr = new int[3][2];
注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。
Java中多维数组不必都是规则矩阵形式
数组中的异常
1.数组下标越界的异常:java.lang.ArrayIndexOutOfBoundsException
2.空指针的异常:NullPointerException
//第一种:
boolean[] b = new boolean[3];
b = null;
System.out.println(b[0]);
//第二种:
String[] str = new String[4];
//str[3] = new String("AA");//str[3] = "AA";
System.out.println(str[3].toString());
//第三种:
int[][] j = new int[3][];
j[2][0] = 12;
排序方法的选择
(1)若n较小(如n≤50),可采用直接插入或直接选择排序。
当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插入,应选直接选择排序为宜。
(2)若文件初始状态基本有序(指正序),则应选用直接插入、冒泡或随机的快速排序为宜;
(3)若n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序。
操作数组的工具类:Arrays
java.util.Arrays类包含了用来操作数组(比如排序和搜索)的各种方法。Arrays拥有一组static方法。
equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。
fill():将值填入array中。
sort():用来对array进行排序。
binarySearch():在排好序的array中寻找元素。
另:System.arraycopy():array的复制。