容器是STL的,有list、map、vector、queue等之分,其中vector是连续内存,其他为不连续内存。
数组肯定是连续内存的,简单型的数据类型。
满足这条就可以用容器了:
元素个数在执行过程中会动态改变。
数组与容器的区别体现在三个方面:效率,类型识别以及可以持有基本类型primitives。
1.数组可以保存基本类型,容器则不能,容器不以具体的类型来处理对象,它们将所有对象都按Object类型处理。
2.数组是一种高效的存储和随机访问对象引用序列的方式,数组是一种内存结构,而容器是一种数据结构。
知道数组的长度,而且以后也不会再增加,那肯定就使用数组了;如果数组的长度不定或者说是长度会增加,为了方便起见使用容器。
3.容器类只能保存对象的引用。而数组既可以创建为直接保存基本类型,也可以保存对象的引用。在容器中可以使用包装类,如Integer、Double等来实现保存基本数据类型值。
一般情况下,考虑到效率与类型检查,应该尽可能考虑使用数组。如果要解决一般化的问题,数组可能会受到一些限制,这时可以使用Java提供的容器类。
|