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(進(jìn)群備注平臺名)
3尘惧、HashMap和Hashtable的區(qū)別 需查看源碼递递。
1、歷史原因:Hashtable是基于陳舊的Dictionary類的贰逾,HashMap是Java 1.2引進(jìn)的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進(jìn)行遍歷痒钝,HashMap使用Iterator進(jìn)行遍歷痢毒。
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)注就是我最大的動力支撐!O断獭沐悦!