第十六章:数组
Java中已经有了容器,为什么还需要数组呢,是因为数组可以持有基本类型吗?但是在泛型出来之后,通过自动包装机制,其实通过容器也能够持有基本类型。在Jav中,数组是一种效率最高的存储和随机访问对象引用序列的方式。数组就是一个简单的线性用,这使得元素访问非常快速。但是为这种速度所付出的代价是数组对象的大小被固定,并其生命周期中不可改变。
在java.util类库中可以找到Arrays类,它有一套用于数组的static实用方法,其中有六个基本方法,equals()用于比较两个数组是否相等(deepEquals()用于多位数组),fill()为数组填充数据,sort()用于对数组的排序;binarySearch()用于在已排序的数组中查找元素。
Java标准类库提供有static方法System.arrayCopy(),用它赋值数组比for循环赋值要快很多,System.arrayCopy()针对所有类型做了重载。arrayCopy()需要的参数有:源数组,表示从源数组中的什么位置开始赋值的偏移量,表示从目标数组的什么位置开始复制的偏移量,以及需要赋值的元素的个数。如果是复制对象数组,这里做得是浅复制。而且System.arrayCopy()不会执行自动拆包和自动装包,所以两个数组必须具有相同的确切类型。