容器类概述(1)
2016-02-28 20:05
183 查看
基本容器类的层次结构。
1) Collection。定义为:一个独立元素的序列。它是Collection层次结构中的根接口。根据这些元素服从的规则,可分为以下几个类型。
(1)List。必须按照插入的顺序保存元素。
a. ArrayList。基于动态数组的数据存储结构。
b. LinkedList。 基于链表的数据存储结构。
(2)Set。不能有重复的元素。
a. HashSet。并没有按照任何明显的顺序来保存其元素,存储元素的方式相当复杂,但确是获取元素的最快方式。
-LinkedHashSet。按照被添加的顺序保存对象。
b. TreeSet。按照比较结果的升序保存对象。
(3)Queue。按照排队规则来确定对象产生的顺序。默认为先进先出排队顺序(FIFO)。
-PriorityQueue。按照优先级的排队规则。
2) Map。一组成对的”键值对“对象。每个对象的键是唯一的,即不能重复。
(1)HashMap。并没有按照任何明显的顺序来保存其元素,也提供了最快的查找技术。
-LinkedHashSet。按照插入顺序保存键,同时也保留了HashMap的查询速度。
(2)TreeMap。按照比较结果的升序保存对象。
基本的容器类的层次关系如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/01/d751e7e9e88bba4847de5a7891ed49a6)
其中,虚线框表示接口,实线框表示普通的类。带有空心箭头的虚线表示一个特定的类实现了一个接口,实心箭头表示某个类可以(通过内部的方法返回)生成箭头所指向类的对象。各容器类的具体定义如下。
Collection:public interface Collection
extends Iterable。
List:public interface List
extends Collection。
ArrayList:public class ArrayList
extends AbstractList
implements List, RandomAccess, Cloneable, Serializable。
LinkedList:public class LinkedList
extends AbstractSequentialList
implements List, Deque, Cloneable, Serializable
Set:public interface Set
extends Collection
HashSet:public class HashSet
extends AbstractSet
implements Set, Cloneable, Serializable
TreeSet:public class TreeSet
extends AbstractSet
implements NavigableSet, Cloneable, Serializable
LinkedHashSet:public class LinkedHashSet
extends HashSet
implements Set, Cloneable, Serializable
Queue:public interface Queue
extends Collection
PriorityQueue:public class PriorityQueue
extends AbstractQueue
implements Serializable
Map:public interface Map
1) Collection。定义为:一个独立元素的序列。它是Collection层次结构中的根接口。根据这些元素服从的规则,可分为以下几个类型。
(1)List。必须按照插入的顺序保存元素。
a. ArrayList。基于动态数组的数据存储结构。
b. LinkedList。 基于链表的数据存储结构。
(2)Set。不能有重复的元素。
a. HashSet。并没有按照任何明显的顺序来保存其元素,存储元素的方式相当复杂,但确是获取元素的最快方式。
-LinkedHashSet。按照被添加的顺序保存对象。
b. TreeSet。按照比较结果的升序保存对象。
(3)Queue。按照排队规则来确定对象产生的顺序。默认为先进先出排队顺序(FIFO)。
-PriorityQueue。按照优先级的排队规则。
2) Map。一组成对的”键值对“对象。每个对象的键是唯一的,即不能重复。
(1)HashMap。并没有按照任何明显的顺序来保存其元素,也提供了最快的查找技术。
-LinkedHashSet。按照插入顺序保存键,同时也保留了HashMap的查询速度。
(2)TreeMap。按照比较结果的升序保存对象。
基本的容器类的层次关系如下图:
其中,虚线框表示接口,实线框表示普通的类。带有空心箭头的虚线表示一个特定的类实现了一个接口,实心箭头表示某个类可以(通过内部的方法返回)生成箭头所指向类的对象。各容器类的具体定义如下。
Collection:public interface Collection
extends Iterable。
List:public interface List
extends Collection。
ArrayList:public class ArrayList
extends AbstractList
implements List, RandomAccess, Cloneable, Serializable。
LinkedList:public class LinkedList
extends AbstractSequentialList
implements List, Deque, Cloneable, Serializable
Set:public interface Set
extends Collection
HashSet:public class HashSet
extends AbstractSet
implements Set, Cloneable, Serializable
TreeSet:public class TreeSet
extends AbstractSet
implements NavigableSet, Cloneable, Serializable
LinkedHashSet:public class LinkedHashSet
extends HashSet
implements Set, Cloneable, Serializable
Queue:public interface Queue
extends Collection
PriorityQueue:public class PriorityQueue
extends AbstractQueue
implements Serializable
Map:public interface Map
相关文章推荐
- 1052 Linked List Sorting
- c++强类型枚举enum class NEWTYPE
- ASP.NET MVC学习之模型绑定(2)
- [MySQL] 事务隔离级别
- Java 中InputStream与Reader的区别
- OpenStack快速安装
- ASP.NET MVC学习之模型绑定(1)
- 函数返回一个指针
- 【BZOJ3511】土地划分【最小割】
- 怎样在 ubuntu 和 debian 中通过命令行管理 KVM
- 怎样在 ubuntu 和 debian 中通过命令行管理 KVM
- Loadrunner简述
- ASP.NET MVC学习之模型模板篇
- ASP.NET MVC学习之视图篇(2)
- hdu 2639 (第k小的01背包)
- 委托子窗体刷新父窗体
- 同源策略详解及绕过
- c语言指针和地址中 &a 和*a 有啥区别
- 【C/C++学院】0905-boostSocketTCPUDP/虚函数表的调用/复杂表达式
- ASP.NET MVC学习之视图篇(1)