Java集合框架剖析(1)
一、Java集合
集合簡易架構圖:
1、集合是什麼?
儲存物件的容器,面嚮物件語言對事物的體現都是以物件的形式,所以為了方便對多個物件的操作,儲存物件,集合是儲存物件最常用的一種方式。
集合中可以儲存任意型別的物件,而且長度可變。在程式中有可能無法預先知道需要多少個物件,那麼用陣列來裝物件的話,長度不好定義,而集合解決了這樣的問題。
2、集合與陣列的區別?
陣列長度是固定的,一旦宣告好,不可改變,集合長度是可變的。陣列中可以儲存基本資料型別,集合只能儲存物件。陣列中儲存資料型別是單一的,集合中可以儲存任意型別的物件。
3、所有集合類都位於java.util包下
4、Collection是高度抽象出來的集合根介面,它包含了集合的基本操作和屬性。Collection包含了List和Set兩大分支。
List集合是有序集合,集合中的元素可以重複,也維護元素的插入順序,訪問集合中的元素可以根據元素的索引來訪問,每一個元素都有它的索引。第一個元素的索引值是0。
List的實現類有LinkedList、ArrayList、Vector、Stack等。
Set集合是無序集合,集合中的元素不可以重複,訪問集合中的元素只能根據元素本身來訪問。Set依賴於Map,它實際上是通過Map實現的;
Set的實現類有
java.util.Collection
---| Collection 描述所有介面的共性
----| List介面 可以有重複元素的集合
----| Set 介面 不可以有重複元素的集合
5、Map介面是一個儲存Key-value對映型的介面,跟Collection介面兩個獨立的介面,訪問可根據每項元素的key來訪問其value。Map中的每一個元素包含一個key和value。AbstractMap是個抽象類,它實現了Map介面中的大部分API。
Map介面實現類有HashMap、TreeMap、LinkedHashMap、Hashtable等。
二、準備工作
1、環境:JDK8、Eclipse
2、配置JDK環境:https://www.cnblogs.com/smyhvae/p/3788534.html
3、Eclipse配置JDK原始碼的Debug模式,目的是解決Eclipse除錯JDK原始碼時,無法檢視變數值: https://www.cnblogs.com/wangyang108/p/6289343.html
三、程式碼地址
https://github.com/liuyongwade/collection-practice.git