本文共 2386 字,大约阅读时间需要 7 分钟。
Java集合框架包含了大部分Java开发中用到的数据结构,主要包括
List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)几个部分。画类图好麻烦,强烈推荐。
注意,在Eclipse中使用Ctrl+T查看Collection接口的继承与实现关系, 会发现好多用于并发的相关容器,以及第三方的包实现了这个接口,这里只考察原生Java集合里的一些常用实现,其他的接口也是。(1)Collection接口
Collection是List、Set等集合高度抽象出来的接口,它包含了这些集合的基本操作,主要分为List和Set以及Queue。(2)List接口 List是一个继承于Collection的接口,即List是集合中的一种。List是有序的队列,List中的每一个元素都有一个索引;第一个元素的索引值是0,往后的元素的索引值依次+1。和Set不同,List中允许有重复的元素。(3)Set接口 Set是一个继承于Collection的接口,即Set也是集合中的一种。Set是没有重复元素的集合。(4)Queue接口(5)Iterator接口
Iterator集合的迭代器。集合可以通过Iterator去遍历集合中的元素。Iterator提供的API接口,包括:是否存在下一个元素、获取下一个元素、删除当前元素。(6)LinkedList类(7)ArrayList类
(8)Vector类
Vector是矢量队列,和ArrayList一样,它也是一个动态数组,由数组实现。但是ArrayList是非线程安全的,而Vector是线程安全的。(9)Stack类
Stack是栈,它继承于Vector。它的特性是:先进后出(FILO, First In Last Out)。先看一下类图关系:
下面针对类图中的实现进行简单分析。
下面针对类图中的实现进行简单分析。
(1)Map接口(2)HashMap类(3)TreeMap类
TreeMap是有序的散列表,它是通过红黑树实现的。它一般用于单线程中存储有序的映射。(4)WeakHashMap类 WeakHashMap也是基于“拉链法”实现的散列表,它一般也用于单线程程序中。相比HashMap,WeakHashMap中的键是“弱键”,当“弱键”被GC回收时,它对应的键值对也会被从WeakHashMap中删除;而HashMap中的键是强键。(5)HashTable类(6)Directionary抽象类
(7)Enumeration接口Arrays和Collections是用来操作数组、集合的两个工具类,
例如在ArrayList和Vector中大量调用了Arrays.Copyof()方法,而Collections中有很多静态方法可以返回各集合类的synchronized版本,即线程安全的版本。本文转自邴越博客园博客,原文链接:http://www.cnblogs.com/binyue/p/4581323.html,如需转载请自行联系原作者