ArrayDeque類的使用詳解

2021-10-04 09:58:40 字數 1669 閱讀 7212

arraydeque是deque介面的乙個實現,使用了可變陣列,所以沒有容量上的限制。

同時,arraydeque是執行緒不安全的,在沒有外部同步的情況下,不能再多執行緒環境下使用。

arraydeque是deque的實現類,可以作為棧來使用,效率高於stack;

也可以作為佇列來使用,效率高於linkedlist。

需要注意的是,arraydeque不支援null值。

一、常用方法

1.新增元素

addfirst

(e e)在陣列前面新增元素

addlast

(e e)在陣列後面新增元素

offerfirst

(e e) 在陣列前面新增元素,並返回是否新增成功

offerlast

(e e) 在陣列後天新增元素,並返回是否新增成功

2.刪除元素

removefirst

()刪除第乙個元素,並返回刪除元素的值,如果元素為null,將丟擲異常

pollfirst

()刪除第乙個元素,並返回刪除元素的值,如果元素為null,將返回null

removelast

()刪除最後乙個元素,並返回刪除元素的值,如果為null,將丟擲異常

polllast

()刪除最後乙個元素,並返回刪除元素的值,如果為null,將返回null

removefirstoccurrence

(object o) 刪除第一次出現的指定元素

removelastoccurrence

(object o) 刪除最後一次出現的指定元素

3.獲取元素

getfirst

() 獲取第乙個元素,如果沒有將丟擲異常

getlast

() 獲取最後乙個元素,如果沒有將丟擲異常

4.佇列操作

add(e e) 在佇列尾部新增乙個元素

offer

(e e) 在佇列尾部新增乙個元素,並返回是否成功

remove

() 刪除佇列中第乙個元素,並返回該元素的值,如果元素為null

,將丟擲異常

(其實底層呼叫的是removefirst()

)poll

() 刪除佇列中第乙個元素,並返回該元素的值,如果元素為null,將返回null

(其實呼叫的是pollfirst()

)element

() 獲取第乙個元素,如果沒有將丟擲異常

peek

() 獲取第乙個元素,如果返回null

5.棧操作

push

(e e) 棧頂新增乙個元素

pop(e e) 移除棧頂元素,如果棧頂沒有元素將丟擲異常

6.其他

size

() 獲取佇列中元素個數

isempty

() 判斷佇列是否為空

iterator

() 迭代器,從前向後迭代

descendingiterator

() 迭代器,從後向前迭代

contain

(object o) 判斷佇列中是否存在該元素

toarray

() 轉成陣列

clear

() 清空佇列

clone()

轉殖(複製)乙個新的佇列

Spring MVC JsonView使用詳解

spring 提供了對jackson 非常好的支援,可以檢視此spring jackson demo 來掌握。這裡著重說一下 jsonview的用法 jsonview可以過濾序列化物件的字段屬性,可以使你有選擇的序列化物件。下面看乙個例子 首先我們定義乙個view類,裡面包含我們對 要序列化的字段 ...

Spring MVC JsonView使用詳解

原文出處 spring 提供了對jackson 非常好的支援,這裡著重說一下 jsonview的用法 jsonview可以過濾序列化物件的字段屬性,可以使你有選擇的序列化物件。下面看乙個例子 首先我們定義乙個view類,裡面包含我們對 要序列化的字段 的定義,我們暫時歸為summary 摘要 屬於s...

Python的namedtuple使用詳解

namedtuple是繼承自tuple的子類。namedtuple建立乙個和tuple類似的物件,而且物件擁有可訪問的屬性。下面看個列子 from collections import namedtuple 定義乙個namedtuple型別user,幷包含name,和age屬性。user named...