美文网首页
Queue 队列

Queue 队列

作者: 咪雅先森 | 来源:发表于2018-06-25 11:45 被阅读0次

理解:

队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接 口。

假设下面是一个队列:
队尾 ---->[1,2,3,4,5]---> 队头
数据从队尾进,从队头出。即先进先出原则。

java5 中新增加了java.util.Queue接口,用以支持队列的常见操作。该接口扩展了java.util.Collection接口。

注意:

1.Queue使用时要尽量避免Collection的add()和remove()方法,而是要使用offer()来加入元素,使用poll()来获取并移出元素。它们的优点是通过返回值可以判断成功与否,add()和remove()方法在失败的时候会抛出异常。
2.如果要使用前端而不移出该元素,使用element()或者peek()方法。

值得注意的是LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。

应用场景:

多线程中应用

基本用法

使用起来跟list这些集合没有什么区别

public class QueueTest {
       public static void main(String[] args) {
               Queue<String> queue = new LinkedList<String>();
               queue.offer("a");        //添加元素
               queue.offer("b");
               queue.offer("c");
               queue.offer("d");
               queue.offer("e");
               for (String q : queue) {
                       System.out.println(q);
               }
               System.out.println("poll=" + queue.poll());        //移除第一个元素

               for (String q : queue) {
                       System.out.println(q);
               }

               System.out.println("peek=" + queue.peek()); // 返回第一个元素
               for (String q : queue) {
                       System.out.println(q);
               }
       }
}

相关文章

  • 循环队列的实现方法1

    设:队列长度是QUEUE_LENGTH队列数组是queue[QUEUE_LENGTH]队列头索引是head队列尾索...

  • Java—Queue队列详解

    Queue Queue队列介绍   Queue是用于模拟队列的,啥叫队列?队列就是排队的意思,比如排队结账,先进入...

  • Java—Queue队列详解(Deque/PriorityQue

    Queue Queue队列介绍   Queue是用于模拟队列的,啥叫队列?队列就是排队的意思,比如排队结账,先进入...

  • Queue模块

    一、class Queue.Queue 类 Queue类表示使用FIFO队列 Queue.qsize()返回队列的...

  • 多线程GCD

    1:GCD 创建队列: 串行队列: dispatch_queue_t queue=dispatch_queue_c...

  • 第三周_总结

    队列创建一个队列:queue_obj = queue.Queue(maxsize=30)maxsize :表示允许...

  • GCD 多线程的使用

    1.串行队列 1.1串行队列创建 dispatch_queue_t queue = dispatch_queue_...

  • GCD

    dispatch_queue_t:线程、队列dispatch_queue_create(派发队列)派发队列分为两种...

  • GCD队列queue.h__queue

    队列queue.h方法总览 创建队列(queue)相关方法: 举例说明:

  • GCD相关

    创建队列 dispatch_queue_create("我是串行队列",DISPATCH_QUEUE_SERIAL...

网友评论

      本文标题:Queue 队列

      本文链接:https://www.haomeiwen.com/subject/wwzeyftx.html