java中queue的常用方法


LinkedList是Queue的實現類,可以如下聲明:

Queue<String> queue = new LinkedList<String>();

offer,add 區別:

一些隊列有大小限制,因此如果想在一個滿的隊列中加入一個新項,多出的項就會被拒絕。

這時新的 offer 方法就可以起作用了。它不是對調用 add() 方法拋出一個 unchecked 異常,而只是得到由 offer() 返回的 false。

poll,remove 區別:

remove() 和 poll() 方法都是從隊列中刪除第一個元素。remove() 的行為與 Collection 接口的版本相似, 但是新的 poll() 方法在用空集合調用時不是拋出異常,只是返回 null。因此新的方法更適合容易出現異常條件的情況。

peek,element區別:

element() 和 peek() 用於在隊列的頭部查詢元素。與 remove() 方法類似,在隊列為空時, element() 拋出一個異常,而 peek() 返回 null。

常用操作(注意只有Deque及其子類才可以使用,詳情看源碼)

操作頭 操作頭 操作尾 操作尾
會拋異常 不會拋異常 會拋異常 不會拋異常
插入 addFirst(e) offerFirst(e) addLast(e) offerLast(e)
刪除 removeFirst() pollFirst() removeLast() pollLast()
取值 getFirst() peekFirst() getLast() peekLast()

Deque實現隊列操作:

操作 隊列方法 相同操作方法
會拋異常
入隊 add(e) addLast(e)
出隊 remove() removeFirst()
得到隊頭的引用 element() getFirst()
不會拋異常
入隊 offer(e) offerLast(e)
出隊 poll() pollFirst()
得到隊頭的引用 peek() peekFirst()

用Deque可以實現Stack的功能:

注意采用的是頭插法,所以出棧也是從頭出的
存在下列方法,功能一樣,名稱有區別:
push(E e) : addFirst(E e)
pop() : removeFirst()
peek() : peekFirst()
Java使用Deque實現棧的功能,注意只調用push / pop /peek 即可,避免調用Deque的其它方法

Map中定義的方法:

添加、刪除、修改操作:
Object put(Object key,Object value):將指定key-value添加到(或修改)當前map對象中
void putAll(Map m):將m中的所有key-value對存放到當前map中
Object remove(Object key):移除指定key的key-value對,並返回value
void clear():清空當前map中的所有數據
元素查詢的操作:
Object get(Object key):獲取指定key對應的value
boolean containsKey(Object key):是否包含指定的key
boolean containsValue(Object value):是否包含指定的value
int size():返回map中key-value對的個數
boolean isEmpty():判斷當前map是否為空
boolean equals(Object obj):判斷當前map和參數對象obj是否相等
元視圖操作的方法:
Set keySet():返回所有key構成的Set集合
Collection values():返回所有value構成的Collection集合
Set entrySet():返回所有key-value對構成的Set集合

總結:常用方法:
添加:put(Object key,Object value)
刪除:remove(Object key)
修改:put(Object key,Object value)
查詢:get(Object key)
長度:size()
遍歷:keySet() / values() / entrySet()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM