PriorityQueue
实现了Queue
,但是PriorityQueue
FIFO 数据结构像Queue
吗?
问问题
11558 次
4 回答
5
于 2012-10-02T14:42:28.477 回答
5
从队列界面:
队列通常但不一定以 FIFO(先进先出)方式对元素进行排序。例外情况是优先级队列,它根据提供的比较器或元素的自然顺序对元素进行排序
所以 PriorityQueue 是一个例外,只有当比较器按该顺序排序时,它才会变成 FIFO 队列。
于 2012-10-02T14:43:04.683 回答
4
PriorityQueue 不关心 FIFO / LIFO。它处理优先级。如果多个对象具有相同的优先级 - 您不能指望任何 FIFO LIFO 行为。
于 2012-10-02T14:44:01.867 回答
2
优先级队列是一种数据结构,它使元素保持一致的内部顺序——在 Java 实现中,这种顺序是在构造时指定的。队列的头部和其他元素的顺序由您指定的排序标准决定。
例如,假设您有一个包含学生的 PriorityQueue,并且您设置的顺序是年龄递增 - 队列的头部将包含最年轻的学生,而尾部将包含最年长的学生。当您添加到 PriorityQueue 时,学生将根据他们的年龄被插入到正确的位置,因为这是您指定的顺序,他们的插入顺序无关紧要。
于 2012-10-02T14:49:16.350 回答