gpt4 book ai didi

Java PriorityQueue 未轮询预期对象

转载 作者:行者123 更新时间:2023-12-01 15:57:48 28 4
gpt4 key购买 nike

这是我在这里发表的第一篇文章,因此请随时为我指出关于在这里提出问题的正确方向。

我的问题出在 java.util.PriorityQueue 上。

我有一个初始化的队列;

    myComparable comp = new myComparable();

PriorityQueue<someObject> prioritized = new PriorityQueue<someObject>(11, comp);

我认为我的队列中有什么或者 myComparable 是如何实现的问题并不重要。

然后我得到意想不到的输出:

prioritizedObject = prioritized.poll();

for(someObject otherObject : prioritized)
{
System.out.println(comp.compare(prioritizedObject, otherObject));
System.out.println(comp.equals(prioritizedObject, otherObject));

}

对于列表中的一个对象,此打印:
1
错误

怎么会这样呢?当我使用的比较器说队列中的另一个对象较小时,如何从队列中 poll() 一个对象?

最佳答案

如果其他一切都正确(没有并发推送,没有测试错误),我可以想象两个原因:

  • 对象的变化会影响其顺序(禁止)
  • 比较器错误(不传递或其他)

关于Java PriorityQueue 未轮询预期对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4748584/

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