Java集合体系

it2024-01-29  62

Java集合体系

Collection 接口:该接口是最基本的集合接口List 接口:列表Set 接口:数学概念的集合Map 接口:包含键值对,Map 不能包含重复的键。SortedMap 是一个按升序排列的 Map 集合。

简化图:

说明:对于以上的框架图有如下几点说明

所有集合类都位于 java.util 包下。Java的集合类主要由两个接口派生而出:Collection 和 Map,Collection 和 Map 是 Java 集合框架的根接口,这两个接口又包含了一些子接口或实现类。集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。实现类:8个实现类(实线表示),对接口的具体实现。Collection 接口是一组允许重复的对象。Set 接口继承 Collection,集合元素不重复。List 接口继承 Collection,允许重复,维护元素插入顺序。Map接口是键-值对象,与Collection接口没有什么关系。Set、List 和 Map 可以看做集合的三大类: List 集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。 Set 集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问(也是集合里元素不允许重复的原因)。 Map 集合中保存 Key-value 对形式的元素,访问时只能根据每项元素的 key 来访问其 value。

标准集合类汇总于下表:

类类描述AbstractCollection实现了大部分的集合接口。AbstractList继承于 AbstractCollection 并且实现了大部分List接口。AbstractSequentialList继承于 AbstractList ,提供了对数据元素的链式访问而不是随机访问。LinkedList继承于 AbstractSequentialList,实现了一个链表。ArrayList通过继承 AbstractList,实现动态数组。AbstractSet继承于 AbstractCollection 并且实现了大部分Set接口。HashSet继承了 AbstractSet,并且使用一个哈希表。LinkedHashSet具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。TreeSet继承于AbstractSet,使用元素的自然顺序对元素进行排序.AbstractMap实现了大部分的 Map 接口。HashMap继承了 HashMap,并且使用一个哈希表。TreeMap继承了 AbstractMap,并且使用一颗树。WeakHashMap继承 AbstractMap类,使用弱密钥的哈希表。LinkedHashMap继承于 HashMap,使用元素的自然顺序对元素进行排序.IdentityHashMap继承 AbstractMap 类,比较文档时使用引用相等。
最新回复(0)