队列的基本操作
java中的队列(Queue)是一种常见的数据结构,它遵循先进先出的原则。java提供了多种队列的实现方式。常用的包括LinkedList
ArrayDeque 和 PriorityQueue.(前两种实现方式队列没有边界大小,不会满)
队列的基本功能
添加元素、获取并移除元素、获取但不移除元素、其他操作(如判断空,大小,清除全部队列)
- 添加元素:
add(element)
:向队列尾部添加一个元素,如果队列已满则抛出异常。offer(element)
:向队列尾部添加一个元素,如果队列已满则返回 false,否则返回 true。
- 获取并移除元素:
remove()
:获取并移除队列头部的元素,如果队列为空则抛出异常。poll()
:获取并移除队列头部的元素,如果队列为空则返回 null。pollFirst()
:获取并移除队列头部的元素,如果队列为空则返回 null(仅LinkedList
和ArrayDeque
支持)。
- 获取但不移除元素:
element()
:获取但不移除队列头部的元素,如果队列为空则抛出异常。peek()
:获取但不移除队列头部的元素,如果队列为空则返回 null。peekFirst()
:获取但不移除队列头部的元素,如果队列为空则返回 null(仅LinkedList
和ArrayDeque
支持)。
- 其他操作:
size()
:返回队列中的元素个数。isEmpty()
:判断队列是否为空。clear()
:清空队列中的所有元素。
import java.util.LinkedList;
import java.util.Queue;
public class test {
public static void main(String[] args) {
Queue<Integer> que = new LinkedList<>();
que.add(1);
que.offer(2);
que.offer(3);
System.out.println(que);
que.remove(2);//remove里加参数可以移除指定参数,不加参数移除队头元素
que.poll();//不能加参数只能移除队头元素
// 获取值但不移除元素
System.out.println(que.element());
System.out.println(que.peek());
System.out.println("队列的长度:"+que.size());
System.out.println("队列是否为空:"+que.isEmpty());
System.out.println("清理所有元素");
que.clear();
System.out.println("队列的长度:"+que.size());
System.out.println("队列是否为空:"+que.isEmpty());
}
}
/*控制台输出
[1, 2, 3]
3
3
队列的长度:1
队列是否为空:false
清理所有元素
队列的长度:0
队列是否为空:true
*/