可能重复:
Java:由优先级队列组成的奇怪队列顺序
我厌倦了通过实现以下比较器将优先级队列变成队列:
- 技巧:QueueComparator 通过始终返回 1 使 PriorityQueue 的行为类似于队列 (FIFO)
- 由于优先级队列的“自然排序”在头部具有最少元素,并且传统比较器在第一个小于第二个时返回 -1,因此被破解的比较器始终返回 1,以便放置当前(最后一个)方格在尾部(递归)
这是代码:
import java.util.Comparator;
public class QueueComparator implements Comparator<Square>{
public int compare(Square square1, Square square2)
{
return 1;
}
}
但是由此产生的“队列”并没有使事情井井有条(FIFO)。为什么?