1. 程式人生 > >java集合類學習小記

java集合類學習小記

lse 實例 hash 如果 集合 常用 遍歷 保存 bject

【List接口】:可變數組,允許保存所有類型元素,包括null,元素可重復,按添加順序保存
【常用實現類】:建議用ArrayList
ArrayList:索引訪問速度快(但插入和刪除節點較慢)
LinkedList:鏈表結構,插入刪除節點很快(但隨機訪問節點對象效率低)
【常用方法】:
boolean add(E e)
boolean remove(Object o)
int size()
E get(int index)
E set(int index,E)

【Set接口】:不按特定方式排序,元素不能重復
【常用實現類】:建議使用TreeSet
HashSet:由哈希表支持,實際是一個HashMap實例,不保證元素順序恒久不變,允許null

TreeSet:遍歷時自動按自然順序遞增排序,允許null
【常用方法】:
boolean add(E e)
boolean remove(Object o)
int size()
【TreeSet常用方法】:
E first():最小元素
E last():最大元素
Comparator comparator() : 返回排序用的比較器(自然序,則返回null)
SortedSet headSet(E to) : to(不含)前面的子集
SortedSet subSet(E from,E to) : 從from(含)到to(不含)的子集
SortedSet tailSet(E from) : from(含)後面的子集

由於TreeSet集合中的元素在插入時會自動調用元素的compareTo()方法進行排序,所以TreeSet集合中的

元素如果是基本類型,則無需實現Comparable接口【因為很多java中的類(包括所有基本類型)已經實現

了Comparable接口】,如果是自定義類型的對象,則該類型必須實現Comparable接口中的compareTo()方

法,這樣通過add()方法插入到TreeSet集合後,才能保證自動排序時不會出現錯誤。

【Map接口】:提供key到value的唯一映射,不含相同的key,
【常用實現類】:建議使用HashMap,因為添加和刪除映射的效率更高
TreeMap: 不允許null鍵

HashMap:基於哈希表的Map接口的實現,通過散列技術,用key產生的散列碼作偏移量來決定存儲對象在映

射中的位置,允許null值和null鍵,但必須保證鍵的唯一性
【常用方法】:
V get(Object key):返回指定鍵所映射的值;如果此映射不包含該鍵的映射關系,則返回 null
V put(K key,V value):將指定的值與此映射中的指定鍵關聯。如果該映射以前包含此鍵的映射關系,那

麽將用新值替換舊值,並返回該舊值,否則返回null【返回null也可能表示之前key映射指向null】
void putAll(Map m):將指定m的映射關系復制存儲到調用者映射中
V remove(Object key):如果存在指定鍵的映射關系,則將其從此映射中移除,並返回關聯該鍵的值,否

則返回null【返回null也可能表示之前key映射指向null】
int size():
boolean containsKey(Object key):如果此映射包含指定鍵的映射關系,則返回 true。
boolean containsValue(Object value):如果此映射將一個或多個鍵映射到指定值,則返回 true
Set keySet():返回此映射中包含的鍵的 Set 視圖(保證鍵的唯一性)
Collection<V> values():返回此映射中包含的值的 Collection 視圖

java集合類學習小記