在Java中,有一个叫集合的家伙,它是用来存储数据的。集合不是一个具体的接口和类,而是一组接口和实现类。
本文主要讲述的是Collection接口以及该接口下的实现类。
先来看一下Collection的框架体系结构:
不难看出,Collection接口有两个儿子,五个儿子的儿子。
一、Collection接口
Collection接口的定义:
public
Collection是一个用于存储数据容器,既然是容器,那么基本上都会具备增删改查的功能。
Collection接口的常用方法:
| 返回值类型
二、List接口
List接口用于存储一组有序且不唯一的元素对象。
List接口的定义:
public
List接口继承Collection接口,也支持泛型。
List接口的常用方法:
| 返回值类型
三、List接口的实现类
1、ArrayList类
ArrayList类底层采用的数据结构是数组,允许添加重复的元素,添加的元素是有序的。
线程不同步,在多线程同时访问时,可以提高访问的效率,但会降低访问的安全性。
优点:
缺点:
2、Vector类
Vector类底层采用的数据结构是数组,允许添加重复的元素,添加的元素是有序的。
线程同步,当多线程同时访问时,会降低访问的效率,但会提高访问的安全性。
Vector类的底层原理是数组,所以优缺点和ArrayList类是一样的。
3、LinkedList类
LinkedList类底层采用的数据结构是链表,存储的元素可以重复,而且是按添加顺序进行存储的。
优点:
LinkedList类的常用方法:
| 返回值类型
四、Set接口
Set接口用于存储一组唯一的元素对象。
Set接口的定义:
public
Set接口继承Collection接口,也支持泛型。所以Collection接口中的方法Set接口都能用。
五、Set接口的实现类
1、HashSet类
HashSet类存储的对象是无序且唯一的,底层数据结构采用的是散列表。
HashSet类的定义:
public
HashSet类实现了Set接口,Set接口又继承继承Collection接口,所以Collection接口中的方法HashSet可以直接用。
2、TreeSet类
TreeSet类存储的对象是有序且唯一的,底层数据结构是红黑树。
优点: 按照升序排序,查询速度比List快 缺点:
TreeSet类的定义:
public
因为Set接口没有拓展自己的独立方法,所以Collection接口的方法TreeSet都适用。
六、总结
以上是我分享给大家的关于Collection集合的一些总结。