双端队列和各式队列
双端队列
双端队列,区别于普通队列
两端都可以进行入队和出队
deque = “double ended queue”
LinkedList 和 ArrayDeque
第一个元素 (头部) | 最后一个元素 (尾部) | |||
---|---|---|---|---|
抛出异常 | 特殊值 | 抛出异常 | 特殊值 | |
插入 | addFirst(e) | offerFirst(e) | addLast(e) | offerLast(e) |
删除 | removeFirst() | pollFirst() | removeLast() | pollLast() |
获取 | getFirst() | peekFirst() | getLast() | peekLast() |
【特别的队列】
1) 优先级队列
元素携带了相关的优先级,优先级更高的元素排在头部
PriorityQueue,提供了Comparable接口,元素可以实现其方法,改变在队列中的顺序
2)阻塞队列
当队列满的时候,等待有空余位置再存数据;当队列空的时候,等待有新数据再读取
BlockingQueue, put()和take()提供了存取的阻塞逻辑
分为两种情况,一种是无限期的等,一种是指定阻塞时间
3)延迟队列
在指定时间内获取队列元素,头部元素是最接近过期时间的。
DelayQueue 给定一个接口设置延迟时间 元素会按照时间排序
标签:各式,优先级,队列,双端,元素,阻塞,头部 来源: https://blog.csdn.net/m0_51945027/article/details/113792052
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。