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 @ 2022-04-12 20:58  xudong5273  阅读(87)  评论(0)    收藏  举报