美文网首页
java中的队列

java中的队列

作者: yueshao | 来源:发表于2019-07-15 14:56 被阅读0次

    queue 在java1.5被引入,它和list 、set一样继承自collection接口。其中LinkedList 实现Deque接口

    1.未实现阻塞接口的:
    • LinkedList : 实现了Deque接口,受限的队列
    • PriorityQueue : 优先队列,本质维护一个有序列表。可自然排序亦可传递 comparator构造函数实现自定义排序。
    • ConcurrentLinkedQueue:基于链表 线程安全的队列。增加删除O(1) 查找O(n)
    2.实现阻塞接口的:
    • 实现blockqueue接口的五个阻塞队列,其特点:线程阻塞时,不是直接添加或者删除元素,而是等到有空间或者元素时,才进行操作。

    • ArrayBlockingQueue: 基于数组的有界队列

    • LinkedBlockingQueue: 基于链表的无界队列

    • ProiporityBlockingQueue:基于优先次序的无界队列

    • DelayQueue:基于时间优先级的队列

    • SynchronousQueue:内部没有容器的队列 较特别 --其独有的线程一一配对通信机制

    一些基本操作方法:

    • add 添加一个元素 如果队列已满 抛出illegalabException异常
    • offer 添加一个元素并返回true 如果队列已满 则返回false
    • put 添加一个元素 如果队列已满 则阻塞
    • remove 删除并返回队列头部元素 如果队列为空 则抛出一个NoSuchElementException
    • poll 移除并返回队列头部元素 如果队列为空 则返回null
    • take 删除并返回队列头部元素 如果队列为空 则阻塞
    • peek 返回队列头部元素 如果队列为空 则返回null
    • element 返回队列头部元素 如果队列为空 则抛出NoSuchElementException异常

    相关文章

      网友评论

          本文标题:java中的队列

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