数组

数组

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

在java中,数组是一种效率最高的存储和随机访问对象序列的方式。数组就是一个简单的线性序列,这使得元素访问非常快速。速度的代价就是数组大小固定并且在其生命周期内不可改变。

数组和容器如果越界会提示runtimeException。

随着自动包装机制的出现,容器已经可以和数组一样方便地运用于编程中了。数组仅存的优点就是效率。

无论哪种类型的数组,数组标识符只是一个引用,指向在堆中创建的一个真实的对象,这个对象用以保存指向其他对象的引用。

Arrays.deepToString方法可以将多维数组转换为多个String,基本类型数组的值在不进行显示初始化的情况下,会被自动初始化。对象数组会被初始化为null。

自动包装机制对应关系:

short Short
int Integer
long Long
char Char
float Float
double Double

粗糙数组:数组中构成矩阵的每个向量都可以具有任意长度。

 

数组和泛型不能很好地结合,擦除会移除参数类型信息。,而数组必须知道他们所持有的确切信息,以强制保证类型安全。但是可以参数化数组本身的类型。可以创建一个object,再将其转型,但是如果没有@SuppressWarning注解,将会在编译器得到一个“不受检查”的警告信息。

Arrays.fill():只能用同一个只填充各个位置,而针对对象而言,就是复制同一个引用进行填充。

java.util.Arrays,有一套用于数组的static方法,其中有六个基本方法:equals()用于比较两个数组是否相等(deepEquals(用于多维数组)),fill(),sort()用于数组排序,binarySearch()用于在已经排序的数组中查找元素,toString(),hashCode()产生数组的散列。

java标准类库中提供System.arraycopy()复制数组,比for循环快很多,并针对所有类型做了重载。System.arraycopy(i,0,j,0,i.length()),如果复制对象数组,只是复制了对象的引用,而不是对象本身的拷贝,被称为浅复制。

Collection中有一个reverseOrder()方法可以反转自然的排列顺序。Arrays.sort(a,Collections.reverseOrder());

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值