Java源码解读扫盲【集合预览】
2018-03-12 00:00
106 查看
接口类图
Java Collection由两套并行的接口组成,一套是Collection接口,一套是Map接口,如下图List:add/remove/get/set
ArrayList:其实就是数组,利用Object[]实现的List,容量一大,频繁增删就是噩梦,适合随机查找LinkedList:单向链表,增加了push|pop|remove|pull,好啰嗦,其实都是removeFirst;
Vector:历史遗留产物,同步版的ArrayList,代码和ArrayList太像;
Stack:继承自Vector,Java里其实没有纯粹的Stack,自己实现一个吧,用组合的方式,封装一下LinkedList即可;
Queue:本来是单独的一类,不过在SUN的JDK里就是用LinkedList来提供这个功能的,主要方法是offer/pull/peek;
Set:add/remove
HashSet:内部采用HashMap实现的;LinkedHashSet:同上,采用LinkedHashMap实现;
TreeSet:同上,采用TreeMap实现;
Map:put/get/remove
HashMap/HashTable:散列表,啥都不说了,和ArrayList一样采用数组实现,超过初始容量会对性能有损耗;LinkedHashMap:这个类有点意思,继承自HashMap,但通过重写嵌套类HashMap.Entry实现了链表结构,同样有容量的问题;
Properties:继承的HashTable;
集合类的区分因素
1.支持哪些操作接口2.内部实现的数据结构,及其相应的时空复杂度
3.是否对插入元素的数量有限制
4. 是否支持插入null元素
5. 是否线程安全
6. 是否支持阻塞
各个类的实现源码后面详细看
相关文章推荐
- 深入理解JAVA集合系列一:HashMap源码解读
- 深入理解JAVA集合系列四:ArrayList源码解读
- java集合07--Stack源码解读
- Java 集合深入理解(16):HashMap 主要特点和关键方法源码解读
- java集合源码解读系列
- Java 集合深入理解(16):HashMap 主要特点和关键方法源码解读
- java集合源码解读---Queu和Stack的数组和链式实现
- 深入理解JAVA集合系列四:ArrayList源码解读
- Java集合ArrayList源码解读
- Java菜鸟面试突破系列Java集合源码解读系列:HashMap实现原理
- java集合之ArrayList源码解读 帮助大家自己动手写一个ArrayList
- java集合07--Stack源码解读
- Java源码解读扫盲【String篇】
- Java集合源码解读(一):集合总体框架
- Java 集合深入理解(16):HashMap 主要特点和关键方法源码解读
- Java集合—ArrayList的源码解读
- Java 集合系列10之 HashMap源码解析
- 二. Java集合类型源码分析
- Java 2源码解读:java.util.ArrayList
- Java集合---HashSet的源码分析