Java中集合框架

本文深入介绍了Java集合框架的构成,包括主要的接口如Collection、List、Set等,抽象类如AbstractCollection、AbstractList等,以及具体实现类如ArrayList、HashSet等。同时探讨了不同集合类的特点和适用场景。

Java中集合框架

版权声明:本文为博主原创文章,转载请注明原链接:
http://write.blog.youkuaiyun.com/mdeditor

集合框架是Java设计者为我们设计的一整套数据结构接口与类,为我们的编写程序时存储和组织数据带来很多便利。下面就从框架,接口,抽象类,具体实现类,以及他们各自的特点和使用规则进行逐一介绍。

Java集合框架图

上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等。

上述所有的集合,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含hasNext() ,next(), remove() 三种方法。他的一个子接口LinkedIterator在它的基础上又添加了三个方法,分别是add(), previous(), hasPrevious()。也就是说如果是Iterator接口,那么在遍历集合中元素的时候,只能往后遍历,被遍历后的元素不能再被遍历到,通常无序集合实现的都是这个接口,比如HashSet,HashMap; 而那些元素有序的集合,实现的一般都是LinkedIterator接口,实现这个接口的集合可以双向遍历,既可以通过next访问下一个元素,又可以通过previous() 访问前一个元素,比如ArrayList;

如果要自己实现一个集合类,去实现那些抽象的接口会非常麻烦,工作量很大。这个时候就可以使用抽象类,这些抽象类中给我们提供了许多现成的实现,我们只需要根据自己的需求重写一些方法或者添加一些方法就可以实现自己需要的集合类,工作流昂大大降低。

下面详细介绍

主要的接口: Collection, Iterator, ListIterator, List, Set, SortedSet, Queue, Map, SortedMap.

主要抽象类: AbstractCollection, AbstractList, AbstractSet, AbstractMap, AbstractSequentialList.

主要具体类: ArrayList, HashSet, TreeSet, HashMap, TreeMap。

Collection: 父类接口;
List: 接口—–实现类: ArrayList, LinkedList, Vector.
Set: 接口—–实现类: HashSet, LinkedHashset.
SortedSet: 接口—-实现类: TreeSet。
Map: 接口—–实现类: HashMap、Hashtable、LinkedHashMap、Properties
SortedMap: 接口—-实现类: TreeMap。

1、List

List: 有序列表,允许存放重复的元素;

实现类:
ArrayList: 数组实现,查询快,增删慢,线程不安全,轻量级;
LinkedList: 链表实现,增删快,查询慢
Vector: 数组实现,线程安全,重量级

2、Set

Set: 无序集合,不允许存放重复的元素;允许使用null元素

HashSet 的后台有一个HashMap;初始化后台容量;只不过生成一个HashSet的话,系统只提供key的访问; 如果有两个Key重复,那么会覆盖之前的;

实现类 HashSet:equals返回true,hashCode返回相同的整数;哈希表;存储的数据是无序的。

实现类LinkedHashSet:此实现与 HashSet 的不同之外在于,后者维护着一个运行于所有条目的双重链接列表。存储的数据是有序的。

实现类TreeSet: 有序集合,内部是用二叉树实现的。

3、Map

HashMap:键值对,key不能重复,但是value可以重复;key的实现就是HashSet;value对应着放;允许null的键或值;
Hashtable:线程安全的,不允许null的键或值;
Properties::key和value都是String类型,用来读配置文件;

TreeMap:对key排好序的Map; key 就是TreeSet, value对应每个key; key要实现Comparable接口或TreeMap有自己的构造器;

LinkedHashMap: 此实现与 HashMap 的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。存储的数据是有序的。

4、两个工具类 Arrays 和 Collections:

(1)、Arrays、此类包含用来操作数组(比如排序和搜索)的各种方法。
(2)、Collections、主要提供了在 collection 上进行操作的静态方法(同步集合类方法) 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值