Collection介面
add() - 將指定的元素插入到集合中
size() - 返回集合的大小
remove() - 從集合中刪除指定的元素
iterator() - 返回一個迭代器以訪問集合的元素
addAll() - 將指定集合的所有元素新增到集合中
removeAll() - 從集合中刪除指定集合的所有元素
clear() - 刪除集合中的所有元素
List介面
add() - 將元素新增到列表
addAll() - 將一個列表的所有元素新增到另一個
get() - 有助於從列表中隨機訪問元素
iterator() - 返回迭代器物件,該物件可用於順序訪問列表的元素
set() - 更改列表的元素
remove() - 從列表中刪除一個元素
removeAll() - 從列表中刪除所有元素
clear() - 從列表中刪除所有元素(比removeAll()效率更高)
size() - 返回列表的長度
toArray() - 將列表轉換為陣列
contains() - 如果列表包含指定的元素,則返回true
ArrayList實現類
與陣列不同,當我們向陣列列表新增或刪除元素時,陣列列表(ArrayList類的物件)可以自動調整其容量。 因此,陣列列表也稱為動態陣列。
LinkedList實現類
與 ArrayList 相比,LinkedList 的增加和刪除的操作效率更高,而查詢和修改的操作效率較低。
方法 | 描述 |
---|---|
public boolean add(E e) | 連結串列末尾新增元素,返回是否成功,成功為 true,失敗為 false。 |
public void add(int index, E element) | 向指定位置插入元素。 |
public boolean addAll(Collection c) | 將一個集合的所有元素新增到連結串列後面,返回是否成功,成功為 true,失敗為 false。 |
public boolean addAll(int index, Collection c) | 將一個集合的所有元素新增到連結串列的指定位置後面,返回是否成功,成功為 true,失敗為 false。 |
public void addFirst(E e) | 元素新增到頭部。 |
public void addLast(E e) | 元素新增到尾部。 |
public boolean offer(E e) | 向連結串列末尾新增元素,返回是否成功,成功為 true,失敗為 false。 |
public boolean offerFirst(E e) | 頭部插入元素,返回是否成功,成功為 true,失敗為 false。 |
public boolean offerLast(E e) | 尾部插入元素,返回是否成功,成功為 true,失敗為 false。 |
public void clear() | 清空連結串列。 |
public E removeFirst() | 刪除並返回第一個元素。 |
public E removeLast() | 刪除並返回最後一個元素。 |
public boolean remove(Object o) | 刪除某一元素,返回是否成功,成功為 true,失敗為 false。 |
public E remove(int index) | 刪除指定位置的元素。 |
public E poll() | 刪除並返回第一個元素。 |
public E remove() | 刪除並返回第一個元素。 |
public boolean contains(Object o) | 判斷是否含有某一元素。 |
public E get(int index) | 返回指定位置的元素。 |
public E getFirst() | 返回第一個元素。 |
public E getLast() | 返回最後一個元素。 |
public int indexOf(Object o) | 查詢指定元素從前往後第一次出現的索引。 |
public int lastIndexOf(Object o) | 查詢指定元素最後一次出現的索引。 |
public E peek() | 返回第一個元素。 |
public E element() | 返回第一個元素。 |
public E peekFirst() | 返回頭部元素。 |
public E peekLast() | 返回尾部元素。 |
public E set(int index, E element) | 設定指定位置的元素。 |
public Object clone() | 克隆該列表。 |
public Iterator descendingIterator() | 返回倒序迭代器。 |
public int size() | 返回連結串列元素個數。 |
public ListIterator listIterator(int index) | 返回從指定位置開始到末尾的迭代器。 |
public Object[] toArray() | 返回一個由連結串列元素組成的陣列。 |
public T[] toArray(T[] a) | 返回一個由連結串列元素轉換型別而成的陣列。 |
以下情況使用 ArrayList :
頻繁訪問列表中的某一個元素。
只需要在列表末尾進行新增和刪除元素操作。
以下情況使用 LinkedList :
你需要透過迴圈迭代來訪問列表中的某些元素。
需要頻繁的在列表開頭、中間、末尾等位置進行新增和刪除元素操作。
Queue介面
實現類
子介面
Queue介面的一些常用方法是:
add() - 將指定的元素插入佇列。如果任務成功,則add()返回true,否則將引發異常。
offer() - 將指定的元素插入佇列。如果任務成功,則offer()返回true,否則返回false。
element() - 返回佇列的開頭。如果佇列為空,則引發異常。
peek() - 返回佇列的開頭。 如果佇列為空,則返回null。
remove() - 返回並刪除佇列的頭部。如果佇列為空,則引發異常。
poll() - 返回並刪除佇列的開頭。 如果佇列為空,則返回null。
Deque介面(雙端佇列)
ArrayDeque實現類
LinkedList實現類
PriorityQueue實現類
BlockingQueue介面
阻塞佇列(BlockingQueue)被廣泛用於“生產者-消費者”問題中,其原因是 BlockingQueue 提供了可阻塞的插入和移除方法。當佇列容器已滿,生產者執行緒會被阻塞,直到佇列未滿;當佇列容器為空時,消費者執行緒會被阻塞,直至佇列非空時為止。
BlockingQueue 介面的實現類有 ArrayBlockingQueue、DelayQueue、LinkedBlockingDeque、LinkedBlockingQueue、LinkedTransferQueue、PriorityBlockingQueue、SynchronousQueue 等。
Set介面
Set介面中還提供了Collection介面的一些常用方法:
add() - 將指定的元素新增到集合中
addAll() - 將指定集合的所有元素新增到集合中
iterator() -返回一個迭代器,該迭代器可用於順序訪問集合中的元素
remove() - 從集合中移除指定的元素
removeAll() - 從存在於另一個指定集合中的集合中刪除所有元素
keepAll() -保留集合中所有還存在於另一個指定集合中的所有元素
clear() - 從集合中刪除所有元素
size() - 返回集合的長度(元素數)
toArray() - 返回包含集合中所有元素的陣列
contains() - 如果集合包含指定的元素,則返回true
containsAll() - 如果集合包含指定集合的所有元素,則返回true
hashCode() -返回雜湊碼值(集合中元素的地址)
Union - 為了得到兩個集合x和y的並集,我們可以使用x.addAll(y)
Intersection - 要獲得兩個集合x和y的交集,我們可以使用x.retainAll(y)
Subset - 要檢查x是否是y的子集,我們可以使用y.containsAll(x)
HashSet實現類
LinkedHashSet實現類
SortedSet介面--TreeSet實現類
Map介面
常用方法
public V put(K key, V value):把指定的鍵與指定的值新增到Map集合中。
public V remove(Object key):把指定的鍵 所對應的鍵值對元素 在Map集合中刪除,返回被刪除元素的值。
public V get(Object key):根據指定的鍵,在Map集合中獲取對應的值。
boolean containsKey(Object key):判斷集合中是否包含指定的鍵。
public Set
public Set<Map.Entry<K,V>> entrySet():獲取到Map集合中所有的鍵值對物件的集合(Set集合)。