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