Java队列Queue简述

概述

​ Queue是java中实现队列的接口,它总共只有6个方法,我们一般只用其中3个就可以了。Queue的实现类有LinkedListPriorityQueue最常用的实现类是LinkedList


Queue的6个方法分类

抛出异常 返回特殊值
插入 add(e) offer(e)
删除 remove() poll()
检查 element() peek()
  • 添加元素(压入):add()offer()

    相同:未超出容量,从队尾添加元素,返回添加的那个元素。

    区别:超出容量时,add()方法会抛出异常,offer()方法则返回false

  • 删除元素(弹出):remove()poll()

    相同:容量大于0的时候,删除队头元素并返回该被删除的元素。

    区别:在容量为0的时候,remove()会抛出异常,poll()返回false

  • 获取队头元素(不删除):element()peek()

    相同:容量大于0的时候,都返回队头元素,但不删除

    区别:容量为0的时候,element()会抛出异常,peek()返回null


Queue是一个先进先出的队列

​ 队列通常(但并非一定)以 FIFO(先进先出)的方式排序各个元素。不过优先级队列和 LIFO 队列(或堆栈)例外,前者根据提供的比较器或元素的自然顺序对元素进行排序,后者按 LIFO(后进先出)的方式对元素进行排序。无论使用哪种排序方式,队列的头 都是调用 remove() 或 poll() 所移除的元素。在 FIFO 队列中,所有的新元素都插入队列的末尾。其他种类的队列可能使用不同的元素放置规则。每个 Queue 实现必须指定其顺序属性。

例子:

public class QueueTest {
    public static void main(String[] args) {
        Queue<String> queue = new LinkedList();
        queue.offer("元素A");
        queue.offer("元素B");
        queue.offer("元素C");
        queue.offer("元素D");
        queue.offer("元素E");
        while (queue.size() > 0) {
            String element = queue.poll();
            System.out.println(element);
        }
    }
}

输出:

元素A
元素B
元素C
元素D
元素E

Process finished with exit code 0



参考资料:https://blog.csdn.net/devnn/article/details/82591349

posted @ 2023-10-25 09:12  Enid_Lin  阅读(31)  评论(0编辑  收藏  举报