Java 数组

数组与其他容器之间的区别有三个方面:效率、类型、和保存基本类型的能力。

Java中,数组是一种效率最高的储存和随机访问对象引用序列的方式。

缺点:数组对象大小被固定,在其生命周期不可改变,而使用ArrayList动态分配,这种弹性需要开销,效率会比较低。

数组的标志符其实只是个引用,指向在堆中创建的一个真实对象,这个数组的对象以保存指向其他对象的引用。

对象数组和基本类型数组的唯一区别:对象数组保存的是引用,基本类型数组是直接保存基本类型的值。

length是数组的大小,而不是实际保存的元素个数,但新生成的对象时,所有引用被自动初始化为null,所以检查其引用是否为null即可知数组某个位置是否保存有对象。

Arrays.fill() 可以对数组进行填充,但只能进行单值填充,或指定某些位置的填充。

Arrays的实用功能:
1、equals()用于比较两数组是否相等,deepEquals()用于多维数组。
2、binarySearch()用于在已经排序的的数组中查找元素。
3、fill()用于填充,
4、sort()用于数组排序,
5、toString产生数组的String表示,
6、hashCode()产生数组的散列码,
7、Arrays.asList()接受任意的序列或数组作为其参数,并将其转为List容器。
Java标准类库提供有static方法System.arraycopy(),用它复制数组比用for快得多。
System.arraycopy(i,0,k,0,i.length)参数有:原数组,表示数组从什么位置开始复制的偏移量,表示从目标数组从什么位置开始复制的偏移量,以及需要复制元素的个数 ,而且两个数组必须为同一类型。

本文整理于《Java编程思想》



原文地址:https://www.cnblogs.com/shangwne/p/3617549.html