Java集合框架是一个设计精良的集合类库,它提供了用于存储和操作一组对象(通常称为“元素”)的接口和类。Java集合框架的主要接口包括Collection
、List
、Set
、Queue
、Map
等,这些接口定义了集合操作的基本行为。
Java集合框架的主要接口
-
Collection<E>
接口-
概述:
Collection
是所有集合类的根接口,定义了集合操作的基本方法,如添加、删除、判断是否包含元素等。 -
子接口:
List
、Set
、Queue
。
-
-
List<E>
接口-
继承自:
Collection<E>
-
概述:
List
是一个有序的集合,允许包含重复元素。列表中的每个元素都有一个索引,支持通过索引访问元素。 -
常见实现类:
ArrayList
、LinkedList
、Vector
、Stack
。
-
-
Set<E>
接口-
继承自:
Collection<E>
-
概述:
Set
是一个不允许重复元素的集合,通常用于去重。 -
常见实现类:
HashSet
、LinkedHashSet
、TreeSet
(有序)。
-
-
Queue<E>
接口-
继承自:
Collection<E>
-
概述:
Queue
是一个通常以FIFO(先进先出)顺序进行排序的集合。用于按顺序处理元素,通常用于队列操作。 -
常见实现类:
LinkedList
、PriorityQueue
、ArrayDeque
。
-
-
Deque<E>
接口-
继承自:
Queue<E>
-
概述:
Deque
表示双端队列,可以从两端插入和移除元素。它结合了栈和队列的特性。 -
常见实现类:
ArrayDeque
、LinkedList
。
-
-
Map<K,V>
接口-
概述:
Map
不是Collection
的子接口,它表示一个键值对的集合,其中每个键只能映射到一个值。键不能重复,但值可以。 -
常见实现类:
HashMap
、LinkedHashMap
、TreeMap
(有序)、Hashtable
。
-
-
SortedSet<E>
接口-
继承自:
Set<E>
-
概述:
SortedSet
是一个有序的集合,元素按自然顺序或自定义的比较器排序。 -
常见实现类:
TreeSet
。
-
-
SortedMap<K,V>
接口-
继承自:
Map<K,V>
-
概述:
SortedMap
是一个有序的Map
,键按自然顺序或自定义的比较器排序。 -
常见实现类:
TreeMap
。
-
-
NavigableSet<E>
接口-
继承自:
SortedSet<E>
-
概述:
NavigableSet
扩展了SortedSet
,提供了更丰富的导航方法,如获取最小、最大、低于、高于给定元素的元素。 -
常见实现类:
TreeSet
。
-
-
NavigableMap<K,V>
接口-
继承自:
SortedMap<K,V>
-
概述:
NavigableMap
扩展了SortedMap
,提供了获取最小、最大、低于、高于给定键的键值对的方法。 -
常见实现类:
TreeMap
。
-
Java集合框架的接口关系图
mathematica复制代码 Collection | ----------------------------------- | | | List Set Queue | | | ------------------ --------------- Deque | | | | | ArrayList LinkedList SortedSet ----------- | | | | | NavigableSet ArrayDeque | | LinkedList | Stack Vector | Hashtable Map | ----------------------------------------- | | | SortedMap NavigableMap | | | | TreeMap TreeMap HashMap | LinkedHashMap
总结
-
Collection
: 是所有集合类的根接口,List
、Set
、Queue
等接口继承自它。 -
List
: 是一个有序的、允许重复元素的集合。 -
Set
: 是一个不允许重复元素的集合。 -
Queue
: 是一个通常以FIFO顺序处理元素的集合。 -
Deque
: 是一个双端队列,结合了栈和队列的特性。 -
Map
: 是一个键值对集合,不允许键重复。 -
SortedSet
*和*NavigableSet
: 是Set
的子接口,用于有序集合。 -
SortedMap
*和*NavigableMap
: 是Map
的子接口,用于有序键值对集合。
这些接口定义了Java集合框架的基本结构,并由具体的类进行实现,用于解决各种数据存储和处理需求。