java数据结构(2) 队列queue
1.queue概念与需求案例
概念:遵循先进先出的有序列表,由数组或链表实现。
需求案例:模拟买地铁票排队啥的…
2.queue的6个方法介绍
导入Queue工具包
import java.util.Queue;
Queue类有以下六个方法:
-
add() :添加元素,失败时抛出异常
-
offer() :添加元素
-
remove() :移除元素,失败时抛出异常
-
poll():移除元素
-
element():查看队首元素,但不移除,失败时抛出异常
-
peek():查看队首元素,但不移除
3.代码使用queue
LinkedList提供了方法支持队列的行为,并且它实现了Queue接口,因此LinkedList可以用作Queue的一种实现。
Queue<Integer> queue = new LinkedList<>();
package Queue;
import java.util.LinkedList;
import java.util.Queue;
/**
* 队列
* - add() :添加元素,失败时抛出异常
* - offer() :添加元素
* - remove() :移除元素,失败时抛出异常
* - poll():移除元素
* - element():拿出队首元素,但不移除,失败时抛出异常
* - peek():拿出队首元素,但不移除
*/
public class queuetest {
public static void main(String[] args) {
//LinkedList提供了方法支持队列的行为,并且它实现了Queue接口,因此LinkedList可以用作Queue的一种实现。
Queue<Integer> queue = new LinkedList<>();
queue.add(1);
System.out.println("使用add添加整形元素1后,使用element查看队首"+queue.element());
queue.offer(2);
System.out.println("使用offer添加整形元素2,使用peek查看队首"+queue.peek());
queue.remove();
System.out.println("使用remove移除队首元素后,使用peek查看队首"+queue.peek());
queue.poll();
//此时队列已经为空,再试试出队操作
queue.poll();//虽然队空但不会抛出异常
//查看队首元素
//虽然队空但不会抛出异常
System.out.println("第二次使用poll移除队首元素后,使用peek查看队首"+queue.peek());
//抛出异常
System.out.println("第二次使用poll移除队首元素后,使用element查看队首"+queue.element());
}
}