千鋒教育Java入門全套視頻教程(java核心技術(shù),適合java零基礎(chǔ),Java

集合的分類集合家族可分為collection和map
實(shí)現(xiàn)collection家族主要包含list列表和set集合,他們繼承父類conllection,同時也是很多常用容器的父類;
list特點(diǎn):單例元素集合、列表允許重復(fù)的元素、用戶可以精確控制列表中每個元素的插入位置,用戶可以通過整數(shù)索引訪問元素,并搜索列表中的元素。
set特點(diǎn):不包含重復(fù)的元素、 沒有帶索引的方法不能用普通的for循環(huán)遍歷。使用foreach方法進(jìn)行遍歷。
map特點(diǎn):雙列的集合,其中用put方法添加,定義put(key,value)每次存儲時要存儲一對key/value,不能存儲相同的key,這個重復(fù)規(guī)則也是按照equals比較相等。
綜上list以特定次序存儲持有元素,可有重復(fù)元素,Set無法擁有重復(fù)元素,內(nèi)部排序;map保持key-value值value可多值
ArrayList與Vector,LinkList繼承l(wèi)ist,其中ArrayList與Vector底層是數(shù)組,linklist底層是雙向鏈表,ArrayList和LinkList都是線程不安全的,而vector是線程安全的,使用了synchronized鎖。
ArrayList:在集合末尾添加刪除元素所消耗的時間是一樣的,但是在集合中間添加刪除所用時間就會大大增加,但是根據(jù)索引查詢的時候,速度就會很快。
LinkList:在集合任意地方添加刪除元素時花費(fèi)時間都是一樣的,但是根據(jù)索引查詢的時間就會多一些。
hashset與treeset繼承至set存儲特點(diǎn)是有序不可重復(fù),hashsat底層是hashmap,hashmap底層是hash表,treeset底層是treemap。
hashmap與hashtable都屬于map,但是hashmap繼承至abstractMap,hashmap底層是hash表,hashmap是線程不安全,hashtable是線程安全的,hashmap是以2倍大小擴(kuò)容,hashtable以二倍加一大小擴(kuò)容;hashmap可以存在null值null鍵,hashtable不行,hashtable建初始值是11,hashmap鍵初始值是16。