Java 集合框架01-----Java集合總覽

今天開始閱讀Java集合源碼了。重點(diǎn)掌握ArrayList,HashMap的源碼
前置問題:

    HashMap的數(shù)據(jù)結(jié)構(gòu)是什么?如何實(shí)現(xiàn)的。和HashTable,ConcurrentHashMap的區(qū)別
    ArrayList是如何實(shí)現(xiàn)的,ArrayList和LinkedList的區(qū)別?ArrayList如何實(shí)現(xiàn)擴(kuò)容。

集合框架類圖如下圖所示:

集合框架類圖.png
接下來我們將按照這個(gè)類圖來開始我們的分析之旅。
總體說明:

最根部就是兩個(gè)接口Collection 和Map
1. Collection 主要有List,Set和Queue三個(gè)分支,Collection定義了集合的基本操作,如集合的查找,修改,合并
- List是一個(gè)有序隊(duì)列,允許重復(fù)元素,其實(shí)現(xiàn)類ArrayList,LinkedList和Vector
- Set不允許有重復(fù)元素。其實(shí)現(xiàn)類有HashSet和TreeSet,HashSet的實(shí)現(xiàn)依賴于HashMap,TreeSet的實(shí)現(xiàn)依賴于TreeMap
2. Map是一個(gè)映射接口,即key-value 鍵值對,其key值只允許一個(gè)為null,Value 值可以允許多個(gè)值為null。
3. Iterator是集合的遍歷工具,即我們通常所說的Iterator迭代器。Collection依賴于Iterator,所有Collection的所有實(shí)現(xiàn)類都要依賴Iterator。
4. Arrays和Collection是操作數(shù)組和集合的工具類。




作者:碼農(nóng)飛哥
微信公眾號(hào):碼農(nóng)飛哥