一、基本概念
- 容器類類庫的用途是保存對象
1、Collection:一個獨立元素的序列
2、Map:一組成對的“鍵值對”對象,允許你用鍵來查找值。映射表,允許我們用另一個對象來查找某個對象,它也被稱為關(guān)聯(lián)數(shù)組。 - 集合方法Collection
1、添加
boolean add(E e) 添加1個
boolean addAll(collection<? extends E> c) 添加指定容器中的所有元素
2、刪除
void clear() 清空所有
boolean remove(Object o) 刪除一個
boolean removeAll(collection<? extends E> c) 刪除指定容器中的所有元素
boolean retainAll(collection<? extends E> c) 移除指定容器中不同的元素
3、獲取長度
int size()
4、判斷
boolean isEmpty() 是否為空
boolean contains(Object o) 包含某個元素
boolean containsAll(Collection<? extends E> c)包含某個指定容器中的元素
5、將集合轉(zhuǎn)成數(shù)組
Object[] toArray()
6、取出集合元素
Iterator iterator()
獲取集合中元素上迭代功能的迭代器對象
迭代:取出元素的一種方式
迭代器:具備迭代功能的對象。NoSuchElementException
迭代器是取出Collection集合元素的公共方式
二、List(有序的Collection)
- List<E>特有的方法(圍繞索引來定義)
1、添加元素
void add(int index, E element) 在List指定位置添加元素
void addAll(int index, Collection<? extends E> c)
2、獲取元素
E get(int index) 獲取元素
List<E> subList(int fromIndex, int toIndex) 獲取指定位置之間的元素
3、刪除
boolean remove(int index) 移除列表指定位置的元素
4、修改
E set(int index, E element) 用指定元素替換列表中指定位置的元素
5、獲取索引
int indexOf(Object o) 獲取第一次出現(xiàn)指定元素的索引
int lastIndexOf(Object o) 獲取最后一次出現(xiàn)指定元素的索引
6、取出集合元素
ListIterator listIterator(int n) 指定返回第一個元素的索引值
- List承諾可以講元素維護在特定的序列中。可以對List中每個元素的插入位置進行精確控制。
- 1、ArrayList,長于隨機訪問元素,但進行插入和移除操作時較慢
2、LinkedList,通過較低代價的在List中進行插入和刪除操作,提供了優(yōu)化的順序訪問。功能較強。
三、迭代器
- 迭代器設計模式:迭代器(Iterator)是一個對象,它的工作是遍歷并選擇序列中的對象。
迭代器通常被稱為輕量級對象,創(chuàng)建它的代價小 - 使用迭代器:
1、使用方法iterator()要求容器返回一個Iterator。Iterator將準備好返回序列的第一個元素
2、使用next()獲得序列的下一個元素
3、使用hasNext()檢查序列中是否還有元素
4、使用remove()將迭代器新近返回的元素刪除
- 特殊的迭代器 ListIterator<E>,可以雙向移動
新增方法
void add(E e) 插入元素
boolean hasPrevious() 逆向遍歷
int nextIndex() 返回對next后續(xù)調(diào)用元素索引
int previousIndex() 返回對previous后續(xù)調(diào)用元素索引
E previous() 返回列表前一個元素
void set(E e) 用指定元素替換返回的元素
四、LinkedList<E>
- LinkedList,通過較低代價的在List中進行插入和刪除操作,提供了優(yōu)化的順序訪問。功能較強。
添加了可以使其用作棧、隊列、或雙端隊列的方法。
新增方法
1、添加元素
void addFirst(E e) 將指定元素插入此列表開頭
void addLast(E e) 將指定元素插入此列表結(jié)尾
boolean offerFirst(E e) 在此列表開頭插入指定元素
boolean offerLast(E e) 在此列表結(jié)尾插入指定元素
2、獲取元素
E getFirest(); 返回列表的第一個元素
E getLast(); 返回列表的最后一個元素
3、刪除元素
E removeFirst() 移除并返回列表第一個元素
E removeLast() 移除并返回列表最后一個元素
boolean removeFirstOccurrence(Object o) 移除此列表第一次出現(xiàn)的指定元素
boolean removeLastOccurrence(Object o) 移除此列表最后一次出現(xiàn)的指定元素
4、Queue集合的方法
E element(); 返回列表的第一個元素
boolean offer(E e); 將指定元素添加到列表的末尾
E peek(); 同 element(),但是在列表為空時返回null
E poll(); 同remove(), 移除并返回列表第一個元素,但是在列表為空時返回null
5、迭代器
五、Set<E>
- Set不保存重復的元素,它會阻止這一現(xiàn)象。
Set常用來測試歸屬性,可以很容易的詢問某個對象是否在Set中,所以查找成為了Set中最重要測操作。
HashSet,專門對快速查找進行了優(yōu)化 - Set就是Collection,只是行為不同。Set是基于對象的值來確定歸屬性的。
六、Map<K,V>
- 將對象映射到其他對象的能力是一種解決編程問題的殺手锏。
Map<K,V>基本方法
1、取值
V get(Object key); 返回指定鍵所對應的值
Set<K> keySet(); 返回此映射中包含的 鍵 的Set視圖
Set<Map.Entry<K,V>> entrySet(); 返回此映射中包含的映射關(guān)系的Set視圖
Collection<V> values(); 返回此映射中包含值的Collection視圖
2、關(guān)聯(lián)
V put(K key, V value)將指定的鍵與值關(guān)聯(lián)
void putAll(Map, m) 從Map中復制映射
3、刪除映射關(guān)系
V remove(Object k) 刪除指定鍵的映射關(guān)系
4、總數(shù)
int size()
5、判斷
boolean containsKey(Object Key)
boolean containsValue(Object Key)