一、基本概念
- 容器類類庫(kù)的用途是保存對(duì)象
1、Collection:一個(gè)獨(dú)立元素的序列
2铝侵、Map:一組成對(duì)的“鍵值對(duì)”對(duì)象灼伤,允許你用鍵來查找值。映射表咪鲜,允許我們用另一個(gè)對(duì)象來查找某個(gè)對(duì)象狐赡,它也被稱為關(guān)聯(lián)數(shù)組。 - 集合方法Collection
1疟丙、添加
boolean add(E e) 添加1個(gè)
boolean addAll(collection<? extends E> c) 添加指定容器中的所有元素
2颖侄、刪除
void clear() 清空所有
boolean remove(Object o) 刪除一個(gè)
boolean removeAll(collection<? extends E> c) 刪除指定容器中的所有元素
boolean retainAll(collection<? extends E> c) 移除指定容器中不同的元素
3、獲取長(zhǎng)度
int size()
4享郊、判斷
boolean isEmpty() 是否為空
boolean contains(Object o) 包含某個(gè)元素
boolean containsAll(Collection<? extends E> c)包含某個(gè)指定容器中的元素
5览祖、將集合轉(zhuǎn)成數(shù)組
Object[] toArray()
6、取出集合元素
Iterator iterator()
獲取集合中元素上迭代功能的迭代器對(duì)象
迭代:取出元素的一種方式
迭代器:具備迭代功能的對(duì)象炊琉。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) 指定返回第一個(gè)元素的索引值
- List承諾可以講元素維護(hù)在特定的序列中」堇铮可以對(duì)List中每個(gè)元素的插入位置進(jìn)行精確控制隘世。
- 1、ArrayList鸠踪,長(zhǎng)于隨機(jī)訪問元素丙者,但進(jìn)行插入和移除操作時(shí)較慢
2、LinkedList营密,通過較低代價(jià)的在List中進(jìn)行插入和刪除操作械媒,提供了優(yōu)化的順序訪問。功能較強(qiáng)评汰。
三纷捞、迭代器
- 迭代器設(shè)計(jì)模式:迭代器(Iterator)是一個(gè)對(duì)象,它的工作是遍歷并選擇序列中的對(duì)象被去。
迭代器通常被稱為輕量級(jí)對(duì)象主儡,創(chuàng)建它的代價(jià)小 - 使用迭代器:
1、使用方法iterator()要求容器返回一個(gè)Iterator惨缆。Iterator將準(zhǔn)備好返回序列的第一個(gè)元素
2糜值、使用next()獲得序列的下一個(gè)元素
3丰捷、使用hasNext()檢查序列中是否還有元素
4、使用remove()將迭代器新近返回的元素刪除
- 特殊的迭代器 ListIterator<E>寂汇,可以雙向移動(dòng)
新增方法
void add(E e) 插入元素
boolean hasPrevious() 逆向遍歷
int nextIndex() 返回對(duì)next后續(xù)調(diào)用元素索引
int previousIndex() 返回對(duì)previous后續(xù)調(diào)用元素索引
E previous() 返回列表前一個(gè)元素
void set(E e) 用指定元素替換返回的元素
四病往、LinkedList<E>
- LinkedList,通過較低代價(jià)的在List中進(jìn)行插入和刪除操作骄瓣,提供了優(yōu)化的順序訪問停巷。功能較強(qiáng)。
添加了可以使其用作棧榕栏、隊(duì)列畔勤、或雙端隊(duì)列的方法。
新增方法
1臼膏、添加元素
void addFirst(E e) 將指定元素插入此列表開頭
void addLast(E e) 將指定元素插入此列表結(jié)尾
boolean offerFirst(E e) 在此列表開頭插入指定元素
boolean offerLast(E e) 在此列表結(jié)尾插入指定元素
2硼被、獲取元素
E getFirest(); 返回列表的第一個(gè)元素
E getLast(); 返回列表的最后一個(gè)元素
3、刪除元素
E removeFirst() 移除并返回列表第一個(gè)元素
E removeLast() 移除并返回列表最后一個(gè)元素
boolean removeFirstOccurrence(Object o) 移除此列表第一次出現(xiàn)的指定元素
boolean removeLastOccurrence(Object o) 移除此列表最后一次出現(xiàn)的指定元素
4渗磅、Queue集合的方法
E element(); 返回列表的第一個(gè)元素
boolean offer(E e); 將指定元素添加到列表的末尾
E peek(); 同 element()检访,但是在列表為空時(shí)返回null
E poll(); 同remove()始鱼, 移除并返回列表第一個(gè)元素,但是在列表為空時(shí)返回null
5、迭代器
五脆贵、Set<E>
- Set不保存重復(fù)的元素医清,它會(huì)阻止這一現(xiàn)象。
Set常用來測(cè)試歸屬性卖氨,可以很容易的詢問某個(gè)對(duì)象是否在Set中会烙,所以查找成為了Set中最重要測(cè)操作。
HashSet筒捺,專門對(duì)快速查找進(jìn)行了優(yōu)化 - Set就是Collection柏腻,只是行為不同。Set是基于對(duì)象的值來確定歸屬性的系吭。
六五嫂、Map<K,V>
- 將對(duì)象映射到其他對(duì)象的能力是一種解決編程問題的殺手锏。
Map<K,V>基本方法
1肯尺、取值
V get(Object key); 返回指定鍵所對(duì)應(yīng)的值
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中復(fù)制映射
3、刪除映射關(guān)系
V remove(Object k) 刪除指定鍵的映射關(guān)系
4则吟、總數(shù)
int size()
5槐臀、判斷
boolean containsKey(Object Key)
boolean containsValue(Object Key)