java常見面試題(二)
阿新 • • 發佈:2017-08-24
stack word list span 哈希 shm sta tar base
1.java集合類
Collection是最基本的集合接口,一個Collection代表一組Object,即Collection的元素(Elements)。Java SDK不提供直接繼承自Collection的類,Java SDK提供的類都是繼承自Collection的“子接口”如List和Set。
LinkedList實現了List接口,允許null元素。由於linkedlist底層是基於雙向鏈表實現的,所以LinkedList查詢效率不高,但是刪除和插入效率略高。線程不安全的
ArrayList實現了List接口,允許null元素。底層基於數組實現,默認長度為10,可自動擴容,擴容大小為原來的 1/2。查詢速度快,插入和刪除效率低。線程不安全的
Vector非常類似ArrayList,但是Vector是線程安全的。
Stack繼承自Vector 是一個後進先出的棧。
Set是一種不包含重復的元素的Collection
Map沒有繼承Collection接口,map提供一個key到value的映射。map的key不能重復,每個key只能映射一個value。
Hashtable繼承Map接口,實現一個key-value映射的哈希表。任何非空(non-null)的對象都可作為key或者value。同步的。
HashMap和Hashtable類似,不同之處在於HashMap是非同步的,並且允許null,即null value和null key。在JDK1.8之前HashMap是基於數據+鏈表實現的,1.8修改為數據+鏈表+紅黑樹。
java常見面試題(二)