Java集合框架,是以数据结构为基础,存储、操作大量数据的容器
官方解释:Collection(有时候也叫container)是一个简单的对象,它把多个元素组织成一个单元。集合可以用来存储、检索、操作、通信。通常情况下,集合代表了一个自然数据项,比如一组手牌(牌的集合)、邮件文件夹(邮件的集合)、电话目录(姓名到电话的映射)。如果你使用过Java或者其他语言,你应该很熟悉集合。
Collections Framework是一个用来表示和操作集合的统一的架构。集合的框架包括了:接口,实现,算法
- Interfaces:
这些是表示集合的抽象数据类型,接口允许集合完成操作,独立与其详细的实现。在面向对象的语言中,接口构成了体系架构; - Implementations:
这些是接口的具体实现。本质上,是一些可复用的数据结构; - Algorithms:
这些方法可以对接口实现的对象进行有用的计算,比如搜索、排序。这些算法是具有多态性的:也就是说,同样的方法可以用在合适的接口的不同实现。本质上,是一些可复用的函数。
接口
public interface Collection<E> extends Iterable<E> {}
public interface List<E> extends Collection<E> {}
public interface Queue<E> extends Collection<E> {}
public interface Deque<E> extends Queue<E> {}
public interface Set<E> extends Collection<E> {}
public interface SortedSet<E> extends Set<E> {}
public interface NavigableSet<E> extends SortedSet<E> {}
public interface Map<K,V> {}
public interface SortedMap<K,V> extends Map<K,V> {}
public interface NavigableMap<K,V> extends SortedMap<K,V> {}
- Collection: 集合层次中的根。一个集合表示一组对象。有些有序,有些无序。有些重复,有些重复。Collection没有直接的实现,而只有它的子接口的对应的实现。
- Set:不能包含重复的元素,比如扑克手牌、学生选课计划、计算机的进程。
- List:有序的集合,也可以包含重复的元素。用于对每个元素精确的控制,比如插入、用index来索引。
- Queue:用于多元素有优先级的处理,可以用做FIFO
- Deque:用于多元素有优先级的处理,double ended queue,可以用作FIFO,LIFO
- Map:用于keys到values的映射,不能包含重复元素
另外还提供了2个带排序的Set和Map。 - SortedSet:元素升序
- SortedMap:key升序
在1.6版本开始,还有两种新的接口NavigableSet、NavigableMap。