目录
Queue与List、Set接口并列的Collection的三大接口之一,是一种常见的数据结构,遵循先进先出的原则。
一、Queue
Queue是队列,只能一头进,另一头出。其可由LinkedList实现。
其常见方法:
- poll():将队首的元素删除,并返回该元素。
- peek():返回队首的元素,但不进行删除操作。
- offer():将元素添加到队尾,如果成功,则返回true。
二、Deque
Deque 是JDK 1.6出来的一个新接口,它是一个双端队列接口,继承自Queue接口,Deque的实现类是LinkedList、ArrayDeque、LinkedBlockingDeque,其中LinkedList是最常用的。
(一)LinkedList
双端队列可使用LinkedList实现,代码实例:
// 队列的创建
Queue<String> queue = new LinkedList<>();
// 添加元素
System.out.println("------offer():添加元素------");
queue.offer("Java");
queue.offer("Python");
queue.offer("C");
queue.offer("PHP");
System.out.println(queue);
// 删除元素
System.out.println("------poll(): 删除元素------");
System.out.println("删除的元素: " + queue.poll());
System.out.println(queue);
// 访问元素
System.out.println("------peek(): 访问元素------");
System.out.println("访问的元素: " + queue.peek());
System.out.println(queue);
// 遍历
System.out.println("------遍历------");
for (String q: queue){
System.out.println(q);
}
------offer():添加元素------
[Java, Python, C, PHP]
------poll(): 删除元素------
删除的元素: Java
[Python, C, PHP]
------peek(): 访问元素------
访问的元素: Python
[Python, C, PHP]
------遍历------
Python
C
PHP
(二) ArrayDeque
双端队列也可使用ArrayDeque实现,例如: