在Java中,有一个叫集合的家伙,它是用来存储数据的。集合不是一个具体的接口和类,而是一组接口和实现类。

本文主要讲述的是Collection接口以及该接口下的实现类。

先来看一下Collection的框架体系结构:


java 有序集合线程安全 java的有序集合_数据结构


不难看出,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集合的一些总结。