Java集合<12> (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(){
  String element = (String) iterator.next();
}

// 使用 for-loop
for(Object object : dequeA) {
    String element = (String) object;
}


你可能感兴趣的:(Java集合<12> (Deque))