Java中的集合類是一種工具類,類似與“容器”的概念;可以用來存儲任意數量的具有共同屬性的對象
集合與數組的比較
Java集合框架體系結構
其中:
list為“序列”、queue為“隊列”:這兩者中的元素是有序、可重復的;
set為“集”:其中的元素是無序的、不可重復的;
Arraylist為“數組序列”、LinkedList為“鏈表”、HashSet為“哈希集”、HashMap為“哈希表”(map集合的實現類)
其中:collection中存儲的是獨立的對象,而map中存儲的是<key,value>映射關系的鍵值對(entry)
List接口及其實現類
ps:當一個對象存入集合時,都會變成object類型;所以在將其取出時,需要進行類型轉換。
集合中的元素是某些對象,其實準確點說應該是對象的引用,這些引用指向特定的對象;
集合中的元素具有某種特定類型,當放入一個其他類型的元素進去時,系統不會報錯,但是當將該元素取出時,會出現類型錯誤的異常;所以可以使用泛型< E >來規定該集合中可以添加的元素的類型,從而會對代碼進行編譯期間的檢查,當嘗試添加異常類型的元素,系統就會報錯,編譯不過去;
泛型集合中,不能添加泛型規定的類型及其子類型以外的對象,否則會報錯!
泛型集合中的限定類型:不能使用基本類型;但是可以通過使用包裝類限定允許存入的基本數據類型;
在集合遍歷方法中,List可以使用foreach()方法和iterator()方法或者get()方法;而Set集合中元素是無序的,所以set集合的遍歷方法只能使用前兩個,不能使用get()方法;
set中,添加某個對象,無論添加多少次,最終只會保留一個該對象(的引用),并且,保留的是第一次添加的那一個;
set中可以添加空對象null
key和value可以為任意類型的數據;
即entry類型(map的一個內部類)的對象實例包括key部分和value部分;
sort()方法中比較的元素必須繼承comparable接口,否則不能對其進行排序;