ArrayDeque(數組雙端隊列)是Jav(???)a集合框架中的一種數據結(jie)構,它實(shí)現了雙端隊列接口,ArrayDeque 可以在隊列的兩端進(jìn)行元素的插入和刪除操作,因此它具有隊列和棧的性質(zhì),ArrayDeque 底層是基于數組實(shí)現的,因此它???的元素存儲在連續的內存空間中,這使得它在進(jìn)行元素訪(fǎng)問(wèn)時(shí)具有較高的性能。
(圖片來(lái)源網(wǎng)絡(luò ),侵刪)ArrayDeque 的特點(diǎn)
支持在隊列兩端進(jìn)行元素的插入和刪除操作
基于數組實(shí)現,元素存儲在連續的內存空間中
可以設置容量大小,當達到容量大小時(shí),會(huì )自動(dòng)擴容
支持泛型,可以存儲任意類(lèi)型的(de)對象
ArrayDeque 的常用方法
(圖片來(lái)源網(wǎng)絡(luò ),侵刪)| 方法名 | 功能描述 |
| addFirst(E e) | 在隊列頭部插入元素 |
| addLast(E e) | 在隊列尾部插入元素 |
| offe??rFirst(E e) | 在隊列頭部插入元素,如果隊列已滿(mǎn),則返回 false |
| offerLast(E e) | 在隊列尾部插入元素,如果(guo)隊列已滿(mǎn),則返回 false |
| removeFirst() | 移除并返回隊列頭部的元素 |
| removeLast() | 移除并返回隊列尾部的元素 |
| pollFirst(??(′;д;`)) | 移除并返回隊列頭部的元素,如果隊列為空,則返回 null |
| pollLast() | 移除并返回隊列尾部的元素,如果隊列為空,則返回 null |
| ge??tFir??st() | 獲取隊列頭部的元素,不移除 |
| getLast()(′▽?zhuān)? | 獲取隊列尾部的元素,不移除 |
| size() | 獲取隊列中元素的個(gè)數 |
| isEmpty() | 判斷隊??列是否為??空 |
ArrayDeque 的使用示例
import java.util.ArrayDeque;public class ArrayDequ???eDemo { public static void main(String[] args) { ArrayDeque<Integer> deque = new?? ArrayDeque<>(3); deque.addFirst(1); //ヽ(′ー`)ノ [1] deque.addLast(2); // [1, 2] deque??.addLast(3); // [1, 2, 3] System.out.println(deque.removeFirst()); // 輸出:1,隊列變?yōu)?[2, 3] System.out.println(deque(′▽?zhuān)?.removeLast()); // 輸出:3,隊列變?yōu)?[2] System.out.println(deque.pollFirst()); // 輸出:2,隊列變?yōu)?[] System.out.println(°o°)(deque.pollLast()); // 輸出:null,隊列為空 }}ArrayDeque 是 Java 中的一個(gè)雙端隊列實(shí)現,它是基于可變數組??的高效實(shí)現,下面(mian)是一個(gè)介紹,簡(jiǎn)要描述了ArrayDeque 的一些關(guān)鍵特性和常用方法:
| 特性/方法( ?° ?? ?°) | 描述 |
| 實(shí)現 | 實(shí)現Deque 接口,可以作為棧和隊列使用 |
| 底層結構 | 可變數組 |
| 容量 | 無(wú)需指定初始容量(默認足??夠大),可根據需要(′?_?`)動(dòng)態(tài)調整 |
是否允許 null | 元素不允許為 null,否則會(huì )拋出NullPointerExcep??tion |
| 順序 | 保持插入順??序(°□°),支持元素重復 |
| 線(xiàn)程安全(′?_?`)性 | 非線(xiàn)程安全,線(xiàn)程不安全的操作可以提供更好的性能 |
以下是??ArrayDeque 的一些常用方法:
| 方法 | 描述 |
addFirst(E e) | 在雙端隊列的前端插入指定元素 |
addLast(E e) | 在雙端隊列的尾端插入指定元素 |
off??erFirst(E e)ヽ(′▽?zhuān)?ノ | 在雙端隊列的前端插入指定元素,當空間限制不允許時(shí)返回false |
offerLa??st(E e) | 在雙端隊列的尾端插入指定元素,當空間限制不允許時(shí)返回false |
removeFirst() | 移除并返回雙端隊列的第一個(gè)元素 |
removeLast() | 移除并返回雙端隊列的最后一個(gè)元素 |
pollFirst() | 移除并返回雙端隊列的第一個(gè)元素,如果隊列為空返回null |
pollLast() | 移除并返回雙端隊列的最后一個(gè)元素,如果隊列為空返回null |
getFirst() | 獲取但不移除雙端隊列的第一個(gè)元素 |
getLast() | 獲取但不移除雙端隊列的最后一個(gè)(ge)元素 |
peekFirst() | 獲取但不移除雙端隊列的第一個(gè)元素,如果隊列為空返回null |
peekLas??t() | 獲取但不移除雙端隊列的最后一個(gè)元素,如果隊列為空返回null |
isヽ(′▽?zhuān)?ノEmpty() | 判斷雙端隊列是否為空 |
size() | 獲取雙端隊列中的元素數量?? |
clear()????? | 清空雙端隊列中的所有元素 |
toArray() | 將雙端隊列轉換為數組 |
這個(gè)介紹提ヽ(′ー`)ノ供的是ArrayDeque 的快速概覽,實(shí)際使用時(shí)需要根據具體場(chǎng)景選擇合適的方法。