DAY14 復習
1. Collection介面
是集合層次的根介面,學習抽象父級的公共方法
Collection集合方法總結
單個集合的操作:
boolean add(E e) 將指定元素添加到集合中
void clear() 清空集合
boolean contains(Object o) 判斷本集合是否包含指定的元素
boolean equals(Object o) 比較集合物件與引數物件o是否相等
int hashCode() 回傳本集合的哈希碼值,
boolean isEmpty() 判斷本集合是否為空
boolean remove(Object o) 從本集合中移除指定元素o
int size() 回傳本集合中元素的個數
Object[] toArray() 將本集合轉為陣列
集合間的操作:
boolean addAll(Collection<> c) 將c集合中的所有元素添加到本集合中
boolean containsAll(Collection<> c) 判斷本集合是否包含c集合的所有元素
boolean removeAll(Collection<> c) 移除本集合中屬于引數集合c的所有元素
boolean retainAll(Collection<> c) 保留本集合與引數集合c的公共元素
集合的迭代:
Iterator iterator() 回傳本集合的迭代器
2. List介面
List介面的特點
- List集合是有下標的
- List集合是有順序的
- List集合可以存放重復的資料
List集合方法總結
單個集合間的操作
void add(int index, E element) 在集合的指定下標index處插入指定元素element
E get(int index) 回傳本集合中指定下標index處的元素
E remove(int index) 移除本集合中指定下標index處的元素
E set(int index, E element) 用引數元素element替換集合中指定下標index處的元素
int indexOf(Object o) 判斷指定元素o在本集合中第一次出現的下標,如果不存在,回傳-1
int lastIndexOf(Object o) 判斷指定元素o在本集合中最后一次出現的下標,如果不存在,回傳-1
List subList(int fromIndex, int toIndex) 截取子集合,包含formidex處的元素,不包含toIndex處的元素
集合間的操作與集合的迭代
boolean addAll(int index, Collection<> c) 將引數集合c中的所有元素,插入到本集合中指定的下標index處
ListIterator listIterator() 回傳此串列元素的迭代器,這個是List自己的,不太常用,可以逆序迭代
3.List介面的兩個常用實作類
ArrayList的特點:
- 底層的資料結構是陣列,記憶體空間是連續的
- 元素有下標,通常可以根據下標進行操作
- 增刪操作比較慢,查詢操作比較快【資料量大時】
LinkedList的特點:
- 底層的資料結構是鏈表,記憶體空間是不連續的
- 元素有下標,但是通常首尾節點操作比較多
- 增刪操作比較快,查詢操作比較慢【資料量大時】
注意:LinkedList查詢慢也不是都慢,首尾操作還是比較快的
簡單方法:
void addFirst(E e) 添加首元素
void addLast(E e) 添加尾元素
E removeFirst() 洗掉首元素
E removeLast() 洗掉尾元素
E getFirst() 獲取首元素
E getLast() 獲取尾元素
E element() 獲取首元素
功能一致但是名字不太好記的方法:
boolean offer(E e) 添加尾元素
boolean offerFirst(E e) 添加首元素
boolean offerLast(E e) 添加尾元素
E peek() 獲取首元素
E peekFirst() 獲取首元素
E peekLast() 獲取尾元素
E poll() 回傳并移除頭元素
E pollFirst() 回傳并移除頭元素
E pollLast() 回傳并移除尾元素
4. Map介面
Map介面的特點
- map集合的結構是:鍵值對、KEY與VALUE、Map.Entry<K,V>的映射關系
- map中key值不允許重復,如果重復,對應的value會被覆寫
- map中的映射關系是無序的
- map沒有自己的迭代器,所以迭代時通常需要轉成set集合來迭代
Map集合方法總結
簡單方法:
void clear() 清空集合
boolean equals(Object o) 判斷集合物件與引數o是否相等
int hashCode() 回傳本集合的哈希碼值
boolean isEmpty() 判斷集合是否為空
int size() 回傳本集合中鍵值對的個數
map單個集合間的操作
boolean containsKey(Object key) 判斷map中是否包含指定的key
boolean containsValue(Object value) 判斷map中是否包含指定的value
V get(Object key) 根據指定的key回傳對應的value,如果不存在,回傳null
V remove(Object key) 洗掉本集合中引數key對應的鍵值對
V put(K key, V value) 向集合中添加映射關系(鍵值對)
void putAll(Map<> m) 向本集合中添加m集合的所有映射關系(鍵值對)
map的迭代
Collection values() 把本map中的Value值取出放入一個Collection中并回傳這個Collection
Set keySet() 把本map中的Key值取出放入一個Set集合中并回傳這個Set集合
Set<Map.Entry<K,V>> entrySet()
把本map中的每一對KV都看成是一個Entry,把所有的Entry取出放入一個Set集合中并回傳這個Set集合
5. Set介面
Set介面的特點
- set集合沒有重復的元素
- set集合的元素是無序的
- set集合可以存null值,并且null最多有一個
- 我們自定義物件如果想去重,需要在自定義類中添加重寫的equals()與hashCode()
集合學習的方法
學習父級的公共方法,學習子類的創建方式,學習各種集合的特點
- 關于List大多都是與下標有關的操作
- 關于Set通常都是去重的操作
- 關于map通常都是映射關系,也就是鍵值對
- API要常練習,方法互相之間沒有任何關系,用哪個,查哪個
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/295229.html
標籤:其他
