Queue(佇列)介面

2022-01-18 09:24:52 字數 1029 閱讀 7158

表示collection的子介面,表示佇列fifo(first in first out)先進先出

常用方法:

​ 丟擲異常:

​ boolean add(e e) - 順序新增乙個元素(到達上限後,再新增則會丟擲異常 )

​ e remove() - 獲得第乙個元素並移除(如果佇列沒有元素時,則丟擲異常)

​ e element() - 獲得第乙個元素但不移除(如果佇列沒有元素時,則丟擲異常)

​ boolean offer(e e) - 順序新增乙個元素(到達上限後,再新增則會返回false)

​ e pool() - 獲得第乙個元素並移除(如果佇列沒有元素時,則返回null)

​ e peek() - 獲得第乙個元素但不移除(如果佇列沒有元素時,則返回null)

執行緒安全、可高效讀寫的佇列,高併發下效能最好的佇列。

無鎖、cas比較交換演算法,修改的方法包含三個核心引數(v,e,n)

​ v:要更新的變數、 e:預期值、 n:新值

queuequeue = new concurrentlinkedqueue();

queue.offer("hello"); //插入

queue.offer("world"); //插入

queue.poll(); //刪除hello

queue.peek(); //獲得world

queue的子介面,阻塞佇列,增加了兩個執行緒狀態為無限期等待的方法。

方法:

void put(e e) - 將指定元素插入此佇列中,如果沒有可用空間,則等待。

e take() - 獲取並移除此佇列頭部元素,如果沒有可用元素,則等待。

arrayblockingqueue:

陣列結構實現,有界佇列

沒寫完,抽空給補上

佇列的Queue介面和Deque介面的方法概述

deque介面繼承了queue介面,queue介面又繼承了collection介面,collection介面又繼承了iterable介面,從父類介面,到具體的實現類,有許多重疊的方法,其中子類介面中的方法要麼直接繼承父類,要麼重寫父類方法,但無論哪一種,方法的作用都相似,但還有細微的差別,如可能子類...

queue的長度 佇列 Queue

佇列 queue 是先進先出 fifo,first in first out 的線性表。在具體應用中通常用鍊錶或者陣列來實現。佇列只允許在後端 稱為rear 進行插入操作,在前端 稱為front 進行刪除操作。隊結構 迴圈佇列可以更簡單防止偽溢位 假溢位 的發生,但佇列大小是固定的。防止假溢位,如d...

佇列(queue)原理

像棧一樣,佇列 queue 也是一種線性表,它的特性是先進先出,插入在一端,刪除在另一端。就像排隊一樣,剛來的人入隊 push 要排在隊尾 rear 每次出隊 pop 的都是隊首 front 的人。如圖1,描述了乙個佇列模型。佇列 queue 與棧一樣,是一種線性儲存結構,它具有如下特點 佇列中的資...