Java 集合框架01-----Java集合总览
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说Java 集合框架01-----Java集合总览,希望能够帮助大家进步!!!
今天开始阅读Java集合源码了。重点掌握ArrayList,HashMap的源码
前置问题:
- HashMap的数据结构是什么?如何实现的。和HashTable,ConcurrentHashMap的区别
- ArrayList是如何实现的,ArrayList和LinkedList的区别?ArrayList如何实现扩容。
集合框架类图如下图所示:
接下来我们将按照这个类图来开始我们的分析之旅。
总体说明:
最根部就是两个接口Collection
和Map
Collection
主要有List
,Set
和Queue
三个分支,Collection
定义了集合的基本操作,如集合的查找,修改,合并List
是一个有序队列,允许重复元素,其实现类ArrayList
,LinkedList
和Vector
Set
不允许有重复元素。其实现类有HashSet
和TreeSet
,HashSet
的实现依赖于HashMap
,TreeSet
的实现依赖于TreeMap
Map
是一个映射接口,即key-value 键值对,其key值只允许一个为null,Value 值可以允许多个值为null。Iterator
是集合的遍历工具,即我们通常所说的Iterator
迭代器。Collection
依赖于Iterator
,所有Collection
的所有实现类都要依赖Iterator
。Arrays
和Collection
是操作数组和集合的工具类。