Fork me on GitHub

Java集合框架(JCF)

Java集合框架(JCF)

java的集合框架可以用如下图表示:

具体来讲,有如下关系:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|----Collection接口:单列集合,用来存储一个一个的对象
|----List接口:存储有序的、可重复的数据。(jdk1.2)
|----ArrayList:作为List接口的主要实现类;线程不安全的,效率高;底层使用Object[] elementData存储(jdk1.2)
|----LinkedList:对于频繁的插入、删除操作,使用此类效率比ArrayList高;底层使用双向链表存储(jdk1.2)
|----Vector:作为List接口的古老实现类;线程安全的,效率低;底层使用Object[] elementData存储(jdk1.0)
|----Stack
|----Set接口:存储无序的、不可重复的数据。
|----HashSet:作为Set接口的主要实现类;线程不安全的;可以存储null值
|----LinkedHashSet:作为HashSet的子类;遍历其内部数据时,可以按照添加的顺序遍历对于频繁的遍历操作,LinkedHashSet效率高于HashSet.
|----TreeSet:可以按照添加对象的指定属性,进行排序.
|----Queue队列
|----PriorityQueue
|----Deque

|----Map接口:双列集合,用来存储一对(key - value)一对的数据。jdk1.2
|----HashMap:作为Map的主要实现类;线程不安全的,效率高;存储null的key和value。 jdk1.2
|----LinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历。jdk1.4
|----TreeMap:保证按照添加的key-value对进行排序,实现排序遍历。此时考虑key的自然排序或定制排序,底层使用红黑树
|----Hashtable:Hashtable:作为古老的实现类;线程安全的,效率低;不能存储null的key和value jdk1.0
|----Properties:常用来处理配置文件。key和value都是String类型
支持一下^-^
0%