一:

1.数组当中既可以存储“基本数据类型”的数据,也可以存储“引用数据类型”的数据(数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是内存地址值)

2.数组是有对应的类,这个类是在JVM运行时创建的,所以没有对应的class 文件;(通过数组创建语法 int[] a = {1, 100, 10, 20}; 可看出,无法查看 数组类,以及源码);数组的父类是Object

3.数组在内存方面存储的时候,内存地址连续。 这是数组存储元素的特点(特色)。数组实际上是一种简单的数据结构。

集合:

List,继承Collection,可重复、有序的对象

Set,继承Collection,不可重复、无序的对象

Map,键值对,提供key到value的映射。key无序、唯一;value无序,可重复

1、集合类结构图
image.png
2、集合特性比较
image.png
线程安全的效率都比较低,Vector,已被淘汰,可使用ArrayList替代。Hashtable,已被淘汰,可使用HashMap替代,如果是高并发的线程安全的实现,推荐使用ConcurrentHashMap。
三、数组与集合区别
(一)集合的由来
数组长度是固定的,当添加的元素超过了数组的长度时需要对数组重新定义, 这样太过繁琐!

因此,Java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而

增加,随着元素的减少而减少

(二)区别
1、数组既可以存储基本数据类型,又可以存储引用数据类型(基本数据类型存储的是值, 引用数

据类型存储的是地址值)

集合只能存储引用数据类型(对象), 集合中也可以存储基本数据类型,但是在存储的时候会自动装箱(JDK1.5新特性)变成对象

2、数组的长度是固定的,集合长度是可以改变的

3、定义数组时必须指定数组元素类型,集合默认其中所有元素都是Object

4、无法直接获取数组实际存储的元素个数,length用来获取数组的长度,但可以通过size()直接获取集合实际存储的元素个数

5、集合有多种实现方式和不同的适用场合,如List,Set,Map等;而不像数组仅采用分配连续的空间方式

6、集合以接口和类的形式存在,具有封装,继承和多态等类的特性,通过简单的方法和属性调用即可实现各种复杂的操作,大大提高软件的开发效率。
(三)使用情况:
1、如果元素个数是固定的,推荐用数组

2、 如果元素个数不是固定的, 推荐用集合


糖心荷包蛋
1 声望0 粉丝

学习成为一名合格的程序员