棧
集合併發
結語
此佇列第乙個元素永遠是最小的,先進先出
priorityqueuequeue = new priorityqueue();
雙端佇列
dequedequea = new linkedlist<>();
dequea.add("element 1");
dequea.addfirst("element 2");
dequea.addlast("element 3");
dequea.element(); // 獲取隊頭元素
dequea.getfirst();
dequea.getlast();
dequea.remove();
dequea.removefirst();
dequea.removelast();
執行緒阻塞佇列
當你出隊隊空或者進隊隊滿,會造成當前執行緒阻塞,除非此時其他的執行緒進隊或者出隊,才會繼續執行
arrayblockingqueue
linkedblockingqueue
priorityblockingqueue
blockingqueuebqueue = new arrayblockingqueue(2);
queuequeue = new linkedlist();
queue.offer( "first element" ); // 入隊
queue.offer( "second element" );
while ( !queue.isempty() )
先進後出
stack st = new stack();
st.push(10);
st.pop();
listthreadsafelist = collections.synchronizedlist(new arraylist());
setthreadsafeset = collections.synchronizedset(new hashset());
mapthreadsafemap = collections.synchronizedmap(new hashmap());
listthreadsafelist = new copyonwritearraylist();
setthreadsafeset = new concurrenthashset();
mapthreadsafemap = new concurrenthashmap();
string previousvalue = threadsafemap.putifabsent("a", "1");
我會第一時間總結出來並發布填充到本文
posted @
2018-09-29 16:41
qz奔跑的馬 閱讀(
...)
編輯收藏
Java集合之佇列
jdk兩套佇列 為什麼要使用阻塞佇列?消費者和生產者不會保持相同的速度,如生產者快時候,佇列會越來越大,相比之下,阻塞佇列只允許生產者的速度在一定速度上超過消費者的速度,但不會超過很多。linkedblockingqueue 基於鍊錶的無界阻塞佇列,但也可以指定長度,不指定無界,內部維護了乙個鍊錶快...
java學習筆記 集合之棧和佇列
棧是vector的乙個子類,它實現了乙個標準的後進先出的棧。堆疊只定義了預設建構函式,用來建立乙個空棧。堆疊除了包括由vector定義的所有方法,也定義了自己的一些方法。boolean empty 判斷棧是否為空 object peek 檢視堆疊頂部的物件,但不從堆疊中移除它。object pop ...
集合框架(資料結構之棧和佇列)
1.棧的定義 又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的...