collections相關(guān)的數(shù)據(jù)結(jié)構(gòu)及API

1、列舉幾個Java Collection類庫中的常用類 此處應(yīng)該有Collection類

Collection是java.util 中的一個接口。繼承自Iterable。

子接口:List、Set、Queue...

實現(xiàn)類:ArrayList、LinkedList、HashSet、TreeSet、Vector、Stack

?其他相關(guān)類:Iterator、TreeMap、HashTable、HashMap Collection接口是最基本的集合接口,它不提供直接的實現(xiàn),Java SDK提供的類都是繼承自Collection的"子接口" 如List和Set。

Collection所代表的是一種規(guī)則,它所包含的元素都必須遵循一條或者多條規(guī)則。 如有些允許重復(fù)而有些則不能重復(fù)、有些必須要按照順序插入而有些則是散列,有些支持排序但是有些則不支持。

2、List、Set、Map是否都繼承自Collection接口?

List、Set繼承自Collection接口,而Map不是。

(1)List 所代表的是有序的Collection。實現(xiàn)List接口的集合主要有:ArratList、LinkedList、Vector、Stack。

(2) Set是一種不包括重復(fù)元素的Collection。實現(xiàn)了Set接口的集合有:EnumSet、HashSet、TreeSet。

(3)Map與List、Set接口不同,它是由一系列鍵值對組成的集合,提供了key到Value的映射。同時它也沒有繼承Collection。 實現(xiàn)map的有:HashMap、TreeMap、HashTable、Properties、EnumMap。

Java初高級一起學(xué)習(xí)分享,共同學(xué)習(xí)才是最明智的選擇,喜歡的話可以我的學(xué)習(xí)群64弍46衣3凌9,或加資料群69似64陸0吧3(進群備注平臺名)

3、HashMap和Hashtable的區(qū)別 需查看源碼。

1、歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進的Map接口的一個實現(xiàn) 。

2、同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的 。

3、值:只有HashMap可以讓你將空值作為一個表的條目的key或value 。 1.HashTable的方法是同步的,在方法的前面都有synchronized來同步,HashMap未經(jīng)同步,所以在多線程場合要手動同步 2.HashTable不允許null值(key和value都不可以) ,HashMap允許null值(key和value都可以)。 3.HashTable有一個contains(Object value)功能和containsValue(Object value)功能一樣。

4.HashTable使用Enumeration進行遍歷,HashMap使用Iterator進行遍歷。

5.HashTable中hash數(shù)組默認(rèn)大小是11,增加的方式是 old*2+1。HashMap中hash數(shù)組的默認(rèn)大小是16,而且一定是2的指數(shù)。

?6.哈希值的使用不同,HashTable直接使用對象的hashCode,代碼是這樣的: int hash = key.hashCode(); int index = (hash & 0x7FFFFFFF) % tab.length; 而HashMap重新計算hash值,而且用與代替求模:

提問/互動請留言,可直接在最底右下方"寫留言即可" 如果覺得寫得不錯請點擊“訂閱”,每天更新全新的內(nèi)容! 你們的喜歡和關(guān)注就是我最大的動力支撐!??!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容