-
队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。遵循先进先出原则。
-
LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。
-
以下是队列的常用方法:
方法名 | 作用 | 特殊 |
---|---|---|
offer() | (表尾)加入元素 | |
poll() | 返回第一个元素并删除 | |
element() | 返回第一个元素但不删除 | 队列为空时,抛出异常 |
peek() | 返回第一个元素但不删除 | 队列为空时,返回null |
add() | (表尾)加入元素 | 失败时会抛出异常 |
remove() | 删除表头元素 | 失败时会抛出异常 |
演示:
import java.util.LinkedList;
import java.util.Queue;
/*add()和remove()方法在失败的时候会抛出异常,不推荐使用 */
public class TestQueue {
public static void main(String[] args) {
// TODO Auto-generated method stub
Queue <String>queue = new LinkedList();
queue.offer("n");
queue.offer("j");
queue.offer("u");
queue.offer("p");
queue.offer("t");
for(String q:queue){
System.out.print(q);
}
System.out.println('\n'+"poll()返回第一个元素并删除:"+queue.poll());
for(String q:queue){
System.out.print(q);
}
System.out.println('\n'+"element()返回第一个元素但不删除:"+queue.element());
for(String q:queue){
System.out.print(q);
}
System.out.println('\n'+"peek()返回第一个元素但不删除:"+queue.peek());
for(String q:queue){
System.out.print(q);
}
System.out.println('\n'+"=====但是,element()和peek()有什么区别呢");
queue.poll();
queue.poll();
queue.poll();
queue.poll();
System.out.println("队列为空时,peek()返回null:"+queue.peek());
System.out.println("队列为空时,element()抛出异常:");
queue.element();
}
}
运行结果: