一、简介
1.Java集合框架
在Java中有一套设计优良的接口和类组成了Java集合框架,使程序员操作成批的数据或对象元素极为方便。所有的Java集合都在java.util包中。
- Collection接口,这个集合接口体系下主要包括List、Set、Queue接口,主要实现类有Vector、ArrayList、LinkedList、HashSet、TreeSet等
- Map接口,这个集合接口主要是以key-value形式存储,key不能重复,value可以重复,主要的实现类有HashMap、TreeMap等
- util包中还提供了集合工具类Collections & 数组工具类Arrays
- Iterator接口,用于遍历集合元素
2.Java集合框架图
二、相关接口实现类介绍
这里仅仅只是介绍一些常用的集合类以及特性,一些原理这篇捕捉介绍
1.List接口
有序的集合类,元素可重复,下面是一些典型的实现类:
- ArrayList-内部是数组实现的,适合随机访问和遍历,不太适合频繁的插入、删除
- LinkedList-是链式数据结构,适合数据的动态插入、删除,不适合随机访问和遍历
- Vector-内部是数组实现的,同时因为其是线程安全的,因此会比ArrayList慢
- Stack-Vetor子类,实现了后进先出的数据结构
2.Set接口
存储的元素不能重复,而判断两个对象是否相同是用equals方法
- HashSet-根据元素的hashCode值来决定元素的存储位置,不是线程安全的,存储对象时,应重写equals方法同时也应该重写hashCode方法,equals中用来比较的的属性也应该用来计算hashCode的值
- LinkedHashSet-同样是根据元素的hashCode值来决定元素的存储位置,但是它同时使用链表维护元素的次序,这样使得元素看起 来像是以插入顺序保存的,也就是说,当遍历该集合时候,将会以元素的添加顺序访问集合的元素。
- TreeSet-有序集合,支持自然排序(Comparable接口)和定制排序(Comparator接口)
3.Queue接口
一种队列数据结构的接口
4.Map接口
一种key-value结构的集合接口
- HashMap-是基于“拉链法”实现的散列表。底层采用“数组+链表”实现
- HashTable-线程安全的,所以会比HashMap慢
- TreeMap-有序散列表,实现SortedMap 接口,底层通过红黑树实现
三、参考文章链接:
集合框架图参考了下面的文章-> http://blog.youkuaiyun.com/frankarmstrong/article/details/56003697