【JAVA集合】JAVA集合框架及其常用方法

hudad發表於2024-06-30

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 keySet():獲取Map集合中所有的鍵,儲存到Set集合中。
public Set<Map.Entry<K,V>> entrySet():獲取到Map集合中所有的鍵值對物件的集合(Set集合)。

HashMAp實現類

LinkedHashMap實現類

TreeMap實現類

相關文章