📅  最后修改于: 2023-12-03 15:16:28.798000             🧑  作者: Mango
Java中的Deque接口,全称为“双端队列”,是一种可以从队列两端添加和删除元素的容器。Deque扩展了Queue接口,除了可以在队列的末尾添加元素外,还可以在队列的开头添加元素。Deque接口提供了许多与队列和栈相关的操作,例如在队列两端添加元素、访问队列两端的元素、删除队列两端的元素等。
Deque接口提供了两个实现类:ArrayDeque和LinkedList。 ArrayDeque就是一个基于数组的双端队列,LinkedList是一个基于链表的双端队列。因为ArrayDeque是基于数组实现的,所以它没有容量限制,而LinkedList则可以无限增长。
可以使用Deque
接口提供的两个实现类之一,即ArrayDeque
和LinkedList
,来创建Deque
实例:
Deque<String> deque = new LinkedList<>();
或
Deque<String> deque = new ArrayDeque<>();
使用addFirst()
或offerFirst()
方法在队列的开头添加元素,使用addLast()
或者offerLast()
方法在队列的末尾添加元素。
deque.addFirst("first");
deque.addLast("last");
可以使用getFirst()
或element()
方法返回队列的第一个元素,使用getLast()
方法返回队列的最后一个元素。
String firstElement = deque.getFirst();
String lastElement = deque.getLast();
可以使用removeFirst()
或pollFirst()
方法从队列的开头删除元素,使用removeLast()
或pollLast()
方法从队列的末尾删除元素。
deque.removeFirst();
deque.removeLast();
可以使用Iterator
和foreach
循环迭代遍历Deque
中的元素。
Iterator<String> iterator = deque.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
或者使用foreach
循环
for(String element : deque){
System.out.println(element);
}
Deque接口是Java中一个非常实用的容器,它基于队列和栈的基本操作,提供了双端队列的许多相关操作。在许多场景下,使用Deque可以实现更加简洁的代码和更高效的处理方式。