开篇明义:
1、对于数组的基本看法是,你可以创建并组装它们,通过使用整形索引值访问它们的元素,并且知道它们的尺寸不能改变,这就是你所要了解的全部。
2、数组为什么特殊。数组是一种效率最高的存储和随机访问对象的引用序列的方式。代价就是他的大小被固定。并且其生命周期不能改变。而ArrayList可以通过创建新实例,然后把旧实例中的内容复制到新实例中来达到扩建的目的。但是这样就需要开销,所以效率低。总而言之,数组效率高,长度固定。List效率低,长度可变。一般用List,有特殊需求用数组。
3.数组的常用方法:
/*Arrays类用于数组的static实用方法,其中有6个基本方法: * 1.equals 用于比较两个数组是否相等,deepEquals()用于多维数组 * 2.fill() 填充数组,将数组内容全部填充为同一个参数 * 3.sort() 用于对数组排序 * 4.binarySearch() 用于在已经排序的数组中查找元素 * 5.toString() 产生数组的String表示 * 6.hashCode() 产生数组的散列码 * 另外asList()方法接受任意的序列或数组作为其参数,并将其转变为List容器。 */
4.System.arraycopy(Object param1,int param2,Object param3,int param4,int param5);拷贝数组。param1表示来源数组。param2表示从源数组中的什么位置开始复制的偏移量,param3表示复制的目标数组,param4表示从目标数组的什么位置开始复制的偏移量。param5是需要复制的元素个数。需要注意的是,如果越界,则会报异常,至于怎么算越界,根据前面的参数说明应该可以看懂。而且,该方法不支持自动封装。即,Integer数组只能复制给Integer数组,不能复制给int数组。且,该方法是浅复制(shallow copy),就是知识复制了该对象的引用,而不是该对象本身。
原文:https://www.cnblogs.com/xiaoao/p/11084566.html