gpt4 book ai didi

java - Java 中 PriorityQueue 的奇怪排序

转载 作者:行者123 更新时间:2023-12-02 17:40:40 32 4
gpt4 key购买 nike

我正在尝试使用优先级队列来保存整数的有序列表。在一个像这样的简单例子中:

PriorityQueue<Integer> queue = new PriorityQueue<>();
queue.offer(3000);
queue.offer(1999);
queue.offer(999);
for(Integer i : queue)
System.out.println(i);

这会打印

999
3000
1999

考虑到自然排序,这不是我所期望的。

我只是想进行迭代,而不需要通过队列(用作排序列表)删除或添加排序。我还能用简单的方式做到这一点吗?

最佳答案

PriorityQueue 是一个针对快速查找尾部或头部值而优化的集合,使用称为堆的部分排序树结构(在维基百科上查找)。如果弹出元素,它们将被排序。如果您想迭代,请改用 SortedSet,它也存储已排序的元素。

关于java - Java 中 PriorityQueue 的奇怪排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10972459/

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