数组与容器的区别?

 

数组排序:java使用内置的排序算法可以对任意的基本类型数组或对象数组进行排序。String数组排序算法依据词典编排顺序排序,对基本类型数组采用快速排序;针对对象采用“稳定归并排序”

数组与容器的区别体现在三个方面:效率,类型识别以及可以持有基本类型primitives。

1.数组只能保存特定类型。数组可以保存基本类型,容器则不能。创建一个数组时可让它容纳一种特定的类型。这意味着可进行编译时间的类型检查防范自己设置了错误的类型或者错误地提取了一种类型,而不是运行时的Exception。容器不以具体的类型来处理对象,它们将所有对象都按Object类型处理。Java对数组和容器都做边界检查;如果过了界,它就会给一个RuntimeException。

2.数组是一种高效的存储和随机访问对象引用序列的方式,但是当创建一个数组对象(注意和对象数组的区别)后,数组的大小也就固定了,当数组空间不足的时候就再创建一个新的数组,把旧的数组中所有的引用复制到新的数组中。(数组是一种内存结构,而容器是一种数据结构)[知道数组的长度,而且以后也不会再增加,那肯定就使用数组了;如果数组的长度不定或者说是长度会增加,为了方便起见使用容器]

3.容器类只能保存对象的引用。而数组既可以创建为直接保存基本类型,也可以保存对象的引用。在容器中可以使用包装类,如Integer、Double等来实现保存基本数据类型值。

一般情况下,考虑到效率与类型检查,应该尽可能考虑使用数组。如果要解决一般化的问题,数组可能会受到一些限制,这时可以使用Java提供的容器类。

你可能感兴趣的:(J2SE)