这是我在这里的第一篇文章,所以请随时指出我在这里制定问题的正确方向。
我的问题在于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
假
这怎么可能?当比较器Im使用说队列中的另一个对象较小时,如何从队列中轮询()一个对象?
答案 0 :(得分:1)
如果其他一切都正确(没有并发推送,没有让测试错误),我可以想象两个原因: