集合框架
Posted mms912
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合框架相关的知识,希望对你有一定的参考价值。
集合框架(collections framework)
首先要明确,集合代表了一组对象(和数组一样,但数组长度不能变,而集合能)。Java中的集合框架定义了一套规范,用来表示、操作集合,使具体操作与实现细节解耦。
其实说白了,可以把一个集合看成一个微型数据库,操作不外乎“增删改查”四种操作,我们在学习使用一个具体的集合类时,需要把这四个操作的时空复杂度
弄清楚了,基本上就可以说掌握这个类了。
两大基类Collection与Map
在集合框架的类继承体系中,最顶层有两个接口:
Collection
表示一组纯数据Map
表示一组key-value对
一般继承自Collection
或Map
的集合类,会提供两个“标准”的构造函数:
- 没有参数的构造函数,创建一个空的集合类
- 有一个类型与基类(
Collection
或Map
)相同的构造函数,创建一个与给定参数具有相同元素的新集合类
因为接口中不能包含构造函数,所以上面这两个构造函数的约定并不是强制性的,但是在目前的集合框架中,所有继承自Collection
或Map
的子类都遵循这一约定。
Collection
如上图所示,Collection类主要有三个接口:
Set
表示不允许有重复元素的集合(A collection that contains no duplicate elements)List
表示允许有重复元素的集合(An ordered collection (also known as a sequence))
Map
Map并不是一个真正意义上的集合(are not true collections),但是这个接口提供了三种“集合视角”(collection views ),使得可以像操作集合一样操作它们,具体如下:
- 把map的内容看作key的集合(map’s contents to be viewed as a set of keys)
- 把map的内容看作value的集合(map’s contents to be viewed as a collection of values)
- 把map的内容看作key-value映射的集合(map’s contents to be viewed as a set of key-value mappings)
集合的实现(Collection Implementations)
实现集合接口的类一般遵循<实现方式>+<接口>
的命名方式,通用的集合实现类如下表:
Interface | Hash Table | Resizable Array | Balanced Tree | ||
---|---|---|---|---|---|
Set | HashSet | TreeSet | |||
List | ArrayList | ||||
Deque | ArrayDeque | ||||
Map | HashMap | TreeMap |
以上是关于集合框架的主要内容,如果未能解决你的问题,请参考以下文章
text 来自Codyhouse框架的Browserlist片段源代码