gpt4 book ai didi

java - ProrityQueue 的奇怪行为

转载 作者:行者123 更新时间:2023-12-02 09:08:03 24 4
gpt4 key购买 nike

我已将配置元素放入 PriorityQueue 中。我通过访问元素

for (Element e : queue) {
...
}

这工作得很好,但是在将额外的配置元素放入队列后,顺序被打乱了。更奇怪的是,这取决于我将元素输入队列的顺序,排序是否正确。

最佳答案

PriorityQueue 状态的 Javadoc

The Iterator is not guaranteed to traverse the elements of the priority queue in any particular order.

基本上,如果需要排序,则 PriorityQueue 不能在 for-each 构造中使用。

根据相关代码,可以使用迭代的 queue.poll() 调用,也可以切换到 List 等其他数据结构,并通过 Collections 对其进行显式排序。排序()

有时顺序是正确的:您一开始只是运气好。

关于java - ProrityQueue 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59648245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com