Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【436-Week 01】周总结与Queue分析 #126

Open
larkloss opened this issue Oct 19, 2019 · 0 comments
Open

【436-Week 01】周总结与Queue分析 #126

larkloss opened this issue Oct 19, 2019 · 0 comments

Comments

@larkloss
Copy link
Contributor

Queue实现分为general-purpose(通用实现?中文该这么翻译?)和 concurrent implementation并发实现。

通用队列实现:
LinkedList实现了Queue接口,为add , poll提供了先进先出(FIFO)队列操作。

PriorityQueue类是基于堆数据结构的优先级队列。 此队列根据构造时指定的顺序对元素进行排序,这些顺序可以是元素的自然顺序,也可以是 Explict Comparator施加的顺序。

队列检索操作( poll , remove , peek和element )访问队列开头的元素。 相对于指定的顺序,队列的开头是最小的元素。 如果多个元素的价值最小,那么head是这些元素之一。

PriorityQueue及其迭代器实现Collection和Iterator接口的所有可选方法。迭代器方法中提供的iterator不能保证以任何特定顺序遍历PriorityQueue的元素。 对于有序遍历,请考虑使用Arrays.sort(pq.toArray()) 。

并发队列实现:
java.util.concurrent包包含一组同步的Queue接口和类。 BlockingQueue扩展了Queue的操作,这些操作等待检索元素时队列变为非空,并等待存储元素时队列中的空间变为可用。 该接口由以下类实现:
LinkedBlockingQueue —由链接节点支持的可选有界FIFO阻止队列
ArrayBlockingQueue —由数组支持的有界FIFO阻塞队列
PriorityBlockingQueue —由堆支持的无界阻塞优先级队列
DelayQueue —由堆支持的基于时间的调度队列
SynchronousQueue —使用BlockingQueue接口的阻塞队列机制

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant