- Queue接口的父类是Collection接口
- LinkedList是Queue接口的实现类之一
- Queue又叫队列,队列通常都是FIFO(先进先出),注意其中的例外是优先级队列,它根据提供的比较器对元素进行排序,业务中大部分是先进先出。
常用方法:
| 变量和类型 | 方法 | 描述 |
|---|---|---|
|
|
| 如果可以在不违反容量限制的情况下立即执行此操作,则将指定的元素插入此队列,成功时返回 |
|
|
| 检索但不删除此队列的头部。 |
|
|
| 如果可以在不违反容量限制的情况下立即执行此操作,则将指定的元素插入此队列。 |
|
|
| 检索但不删除此队列的头部,如果此队列为空,则返回 |
|
|
| 检索并删除此队列的头部,如果此队列为空,则返回 |
- add(E e):通常用于那些需要严格确保元素被添加到队列中的场景,或者当开发者希望了解队列是否因为容量限制而拒绝添加元素时。
- offer(E e):更适合于那些希望避免异常处理,而是通过返回值来判断元素是否成功添加的场景。这在编写健壮的代码时非常有用,因为它允许程序在队列满时优雅地处理这种情况,而不是通过异常机制。
public class QueueMethod {
public static void main(String[] args) {
// 先进先出
Queue<String> queue = new LinkedList<>();
queue.add("marry");
queue.add("jack");
queue.add("alice");
queue.add("john");
queue.offer("zhangsan");
System.out.println(queue);
// [marry, jack, alice, john, zhangsan]
// element:获取队列头部的信息,但是不删除
// 如果集合中没有元素,抛出NoSuchElementException
String element = queue.element();
System.out.println(element);
// marry
System.out.println(queue);
// [marry, jack, alice, john, zhangsan]
// remove:检索并删除此队列的头部
// 如果集合中没有元素,抛出NoSuchElementException
// String remove = queue.remove();
// System.out.println(remove);
// System.out.println(queue);
// [jack, alice, john, zhangsan]
// peek:获取队列头部的信息,但是不删除
// 如果集合中没有元素,返回null
String peek = queue.peek();
System.out.println(peek);
// marry
System.out.println(queue);
// [marry, jack, alice, john, zhangsan]
// poll:获取并删除队列中的头部元素
// 如果集合中没有元素,返回null
String poll = queue.poll();
System.out.println(poll);
// marry
System.out.println(queue);
// [jack, alice, john, zhangsan]
}
}
注意:栈是先进后出;队列是先进先出。
234

被折叠的 条评论
为什么被折叠?



