java中的容器主要分为三种:长度(大小)固定的Array(即数组)、不固定长度的Collection与Map。(本文参考sun
jdk 1.6的实现)
本章先介绍Array与Arrays。
Array就是数组,也就是长度固定的容器,一但创建了这个对象就不能改变其大小(capacity)。
Arrays是Array的工具类,其静态方法定义了对Array的各种操作:
(1)asList方法:将Array包装成一个List,这个方法的实现只有一行代码:return new
ArrayList(a);虽然它
返回了一个新建的ArrayList,但如果对这个返回的List进行操作会影响到底层的Array数组。因为实现它的代码创建的ArrayList对象
不是我们使用的java.util.ArrayList,而是在Arrays类内部定义的Nested Class:
(2)binarySearch用二分查找算法对目标数组进行查找。
(3)copyOf对目标数组进行复制,通过消减或填充(数组数据类型的默认值)以使结果数组具有特定的长度。底层实现是System.arraycopy方法
(4)copyOfRange对目标数组进行复制,结果数组是目标数组的一个区间。底层实现是System.arraycopy方法。
(5)equals与deepEquals。判断两个数组是否相等,如果两个数组包含的对应位置上的元素相等或者两个数组同为null,equals返回true。deepEquals适用于多维数组。
(6)fill填充用指定的值填充目标数组.
(7)sort对目标数组进行排序。
(8)toString与deepToString对目标数组转化为[element,...]形式的字符串,deepToString适用于多维数组。