Deque

java.util.Deque接口是java.util.Queue接口的子接口。

它代表的队列包含从队列两端添加和删除元素。

"Deque" 是 "Double Ended Queue"的简称。

Deque的实现类

java.util.ArrayDeque

java.util.LinkedList

LinkedList是一个标准的deque/queue实现。

ArrayDeque内部使用数组保存元素,如果元素数量超过了内部数组的大小,内部将产生一个新的数组,

然后将数据转移过去,用来满足需求,换句话说,ArrayQeque自身有扩容功能。

添加,访问和删除元素

向Deque中添加元素除了add()和offer()方法以外,

还可以调用addLast()插入到末尾,addFirst()插入到头部。

offerFirst()插入到头部,offerLast()插入到末尾。

push()插入到头部,

Deque deque = new LinkedList();

deque.add("element1"); // 在末尾添加元素

deque.addFirst("element2"); // 在头部添加元素

deque.addLast("element3"); // 在末尾添加元素

deque.offerFirst("element4"); // 在头部添加元素

deque.offerLast("element5"); // 在末尾添加元素

出队列的方法除了queue中提到的

peek(); element(); poll(); remove();

Deque还新增了

getFirst()方法,返回头部元素, 不删除该元素

getLast()方法,返回末尾元素,不删除该元素

peekFirst()方法,返回头部元素,不删除该元素

peekLast()方法,返回末尾元素,不删除该元素

pollFirst()方法,返回头部元素并且删除该元素

pollLast()方法,返回尾部元素并且删除该元素

removeFirst()方法,返回头部元素并且删除该元素

removeLast()方法,返回尾部元素并且删除该元素

removeFirstOccurrence(Object)方法,由头至尾删除第一次出现在列表中的元素

removeLastOccurrence(Object)方法,由尾至头删除第一次出现在列表中的元素

pop()从末尾取出并且删除元素

对元素进行遍历

Deque deque = new LinkedList();

deque.add("element0");

deque.add("element1");

deque.add("element2");

// 使用 Iterator

Iterator iterator = dequeA.iterator();

while(iterator.hasNext(){undefined

String element = (String) iterator.next();

}

// 使用 for-loop

for(Object object : dequeA) {undefined

String element = (String) object;

}

posted @   xudong5273  阅读(80)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示