結構圖
Collection接口
Set、List由它派生。
基本操作 增加元素add(Object obj); addAll(Collection c);
刪除元素 remove(Object obj); removeAll(Collection c);
求交集 retainAll(Collection c);
set
沒有重複項目的集合
HashSet-基於散列表的集
TreeSet-基於(平衡)樹的數據結構
List
位置性集合。加進清單的元素可以加在清單中特定位置或加到末尾
ArrayList(數組表)-類似於Vector,都用於縮放數組維護集合。
LinkedList(鏈表)-是雙向鏈表,每個節點都有兩個指針指向上一節點和下一節點。
Map
處理Map的三種集合
關鍵字集KeySet()
數值集value()
項目集enrySet()
具體版本
HashMap-散列表的通用映射表
TreeMap-基於平衡樹的映射表
Hashtable
相關面試問題
1、Collection 和 Collections的區別。
Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法。
Collection是個java.util下的接口,它是各種集合結構的父接口
2、ArrayList和Vector的區別
一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
二.數據增長:當需要增長時,Vector默認增長爲原來一培,而ArrayList卻是原來的一半
3、List, Set, Map是否繼承自Collection接口?
List,Set是 Map不是
4、HashMap和Hashtable的區別
一.歷史原因:Hashtable是基於陳舊的Dictionary類的,HashMap是Java 1.2引進的Map接口的一個實現
二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的
三.值:只有HashMap可以讓你將空值作爲一個表的條目的key或value