集合的相關問題

(1)集合與數組的比較
數組不是面向對象的,存在明顯的缺陷,集合彌補了數組的一些缺點,比數組更靈活更實用,可大大提升軟件的開發效率,並且不一樣的集合框架類可適用不一樣場合。具體以下:
1:數組能存放基本數據類型和對象,而集合類中只能存放對象。
2:數組容量固定沒法動態改變,集合類容量動態改變。
3:數組沒法判斷其中實際存有多少元素,length只告訴了數組的容量,而集合的size()能夠確切知道元素的個數
4:集合有多種實現方式和不一樣適用場合,不像數組僅採用順序表方式
5:集合以類的形式存在,具備封裝、繼承、多態等類的特性,經過簡單的方法和屬性便可實現各類複雜操做,大大提升了軟件的開發效率
(2)Collection和Collections的區別
Collection是Java提供的集合接口,存儲一組不惟 一,無序的對象。它有兩個子接口List和Set。
Java還有一個Collections類,專門用來操做集合類,它提供了一系列的靜態方法實現對各類集合的搜索、排序、線程安全化等操做。
(3)ArrayList和LinkedList的聯繫和區別
ArrayList實現了長度可變的數組,在內存中分配連續空間。遍歷元素和隨機訪問元素效率比較高。
LinkedList採用鏈表存儲方式。插入、刪除元素效率比較高。
(4)Vector和ArrayList的聯繫和區別
實現原理相同,功能相同,都是長度可變的數組結構,不少時候能夠互用,底層數據結構相同,都是Object類型的數組。
二者的主要區別以下
Vector是早期的JDK類,ArrayList是替代Vector的新類
Vector線程安全,ArrayList重速度輕安全,線程非安全
長度須要增加時,Vector默認增加一倍,ArrayList增加50% (0.5+1)
Vector是在調用構造方法時,直接初始化容量爲10,ArrayList是在第一次調用添加方法時,初始化容量爲10。
(5)HashMap和Hashtable的聯繫和區別
實現原理相同,功能相同,底層都是哈希表結構,查詢速度快,在不少狀況下能夠互用
二者的主要區別以下
Hashtable是早期的JDK提供的類,HashMap是新版的JDK提供的類
Hashtable繼承Dictionary類,實現Map接口
,HashMap繼承了AbstractMap,實現Map接口.
Hashtable是線程安全,HashMap線程非安全
Hashtable不容許null 鍵和值,,HashMap容許null值,可是null做爲key只能有一個。數組

相關文章
相關標籤/搜索