一、集合的架構(gòu)
Collection(I):單列集合的根接口
List:有序的(可以使用索引值操作元素)元素可以重復(fù)
ArrayList(C):底層實(shí)現(xiàn)是數(shù)組 增刪慢 查詢塊
LinkedList(C):底層是鏈表 增刪快 隨機(jī)查詢慢
Set(I):無序的(不可以根據(jù)索引值操作元素) 元素不可以重復(fù)
HashSet(C):不能保證存入的順序和取出的順序一致
LinkedHashSet(C):有序的 可以保證存入的順序和取出的順序一致
TreeSet(C):有序的 可以對元素進(jìn)行排序
Map(I):雙列集合的根接口
HashMap(C):key-value key值不能重復(fù) 可以為null 可以使用key值獲取value值 一個(gè)鍵值對對應(yīng)一個(gè)entry
LinkedHashMap:可以保證存入和取出的順序
TreeMap(C):可以對key值排序
Iterator 迭代器
ListIterator List迭代器 只能操作list
特有的方法:hasPrevious() previous() 只有在先調(diào)用hasNext() next()之后才有效 add()方法 在迭代期間可以調(diào)用
二、Collection方法總覽
add(); 增加元素
renmove();刪除元素
clear():清空元素
contains() 包含元素
size() 集合長度
isEmpty() 是否為空
addAll() 將有一個(gè)集合全部增加到另外一個(gè)集合
removeAll()將一個(gè)集合在另外一個(gè)集合中全部移除
containsAll()判斷一個(gè)集合是否包含在另外一個(gè)集合
rettainAll()獲取兩個(gè)集合的交集
三、List方法總覽
List:
add(int index,E e); 增加元素
get(int index);獲取index上的元素
remove(int index);移除index上的元素
set(int index,E e);設(shè)置index上的元素
listIterator: ListIterator: add();
LinkedList 獨(dú)有方法
getFirst 獲取首元素
getLast 獲取尾元素
removeFirst 移除首元素
removeLast 移除尾元素
addFirst 增加首元素
addLast 增加尾元素
四、Map方法總覽
V put(K key,V value) 存數(shù)據(jù)
V remove(Object key) 移除數(shù)據(jù)
void clear() 清空集合
boolean containsKey(Object key) 判斷包含key
boolean containsValue(Object value) 判斷包含value
boolean isEmpty() 判斷是否為空
int size() 集合的長高度
V get(Object key) 獲取key
Set<K> keySet() 獲取key的集合
Collection<V> values() 獲取value的集合
Set<Map.Entry<K,V>> entrySet() 獲取鍵值對集合
五、TreeMap和TreeSet總結(jié)
TreeSet:
- 可以對集合中的元素進(jìn)行自然排序
- TreeSet中的元素必須實(shí)現(xiàn)Comparable接口 否則會(huì)拋出異常
- TreeSet可以通過構(gòu)造方法傳入一個(gè)Comparator比較器來定義新的比較規(guī)則
TreeMap: - TreeMap可以對鍵Key進(jìn)行自然排序
- TreeMap中實(shí)現(xiàn)Compare/ComparaTo返回值為0時(shí),會(huì)默認(rèn)是同一個(gè)元素,鍵Key不變,value值被替換
- TreeMap存放元素時(shí)鍵不要為null,會(huì)拋出異常
六、hashSet和TreeSet如何保證元素不重復(fù)的
hashSet: hasCode和equals
TreeSet: Compare/ComapraTo 如果返回值是0則會(huì)被認(rèn)為是同一個(gè)元素 后邊的值不會(huì)存入TreeSet中。