Java 数组

数组是多个相同类型数据的组合,实现对这些数据的统一管理

数组中的元素可以是任何数据类型包括基本数据类型和引用数据类型

数组属引用类型,数组型数据是对象(object),数组中的每个元素相当于该对象的成员变量

数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化。

数组一旦初始化,其长度是不可变的.

数组初始化

java 语言中,声明数组时不能指定其长度.

动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行;
静态初始化:在定义数组的同时就为数组元素分配空间并赋值。

数组元素的默认初始化:

  对于基本数据类型而言,默认初始化值各有不同
  对于引用数据类型而言,默认初始化值为null

泛型数组:

Java 不支持泛型类型的数组: Item a = new Item[cap];
  可以使用类型转换实现: a = (Item []) new Object[cap];

多维数组

一维数组: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的复制。

posted @ 2016-05-25 21:26  岳灵珊  阅读(186)  评论(0编辑  收藏  举报