Java编程中,经常需要使用集合类。对集合做以下总结,纯属增加自己理解、记忆、分享。
1.数组与集合
数组:是一种用来存储任意数据类型的,大小固定的容器
集合:是一种只能用来存储引用类型的,可自动扩展,具有良好性能的容器
数组与集合的相同点:都是一种容器,可以存储对象
数组与集合的不同点:
- 数组,既可以用来存储基本数据类型,又可以存储引用类型
集合,只可以存储引用数据类型
- 数组的长度是固定的,长度在定义数组时确定,所以数组存储对象时,可能出现异常
集合的长度是可以自动扩展的,长度是可以根据需要自动扩展的
- 数组是基本的最基本的容器之一,使用没有集合便捷
集合是根据不同的数据结构、不同的算法实现的容器。具有更好的性能,更便捷的使用
数据和集合都是容器,为什么要有集合呢?下面就详细讲解下关于集合,为什么会选择集合?
2.Java集合的类图如下:
根据类图可以看出:
1. Collection接口:集合类的根接口,继承了迭代器接口,抽象、定义了集合的公共方法,没有具体的实现类,主要存储或有序、或无序对象。有三个子类:Queue、List、Set
2. Map接口:与Collection接口没有继承、实现关系,是相互独立的。二者都属于集合的根接口,二者的集合存储类型不一样。Map主要用来存储key-value(键值对)
3.List接口:继承Collection接口。主要用来存储有序集合,元素可以重复,根据序列索引进行存储元素的操作
4.Set接口:继承Collection接口。无序集合,元素不可以重复。根据元素的值进行操作
5.Queue接口:继承Collection接口。有序队列,提供或FIFO或LIFO的操作形式,即栈。
对集合类接口先稍作描述,后续补充实现类