与java中的优先级队列混淆

Posted

技术标签:

【中文标题】与java中的优先级队列混淆【英文标题】:confusion with priority queue in java 【发布时间】:2016-08-21 09:11:52 【问题描述】:

我有一些要放入优先级队列的数组索引。现在我想使用一个比较器,它应该将这个索引与同一类中的另一个数组进行比较。比较器类应该怎么写?

【问题讨论】:

显示你迄今为止尝试过的东西? 将此索引与同一类中的另一个数组进行比较 我对这个声明没有任何意义。你想比较什么?您在优先级队列中添加了什么? 【参考方案1】:

假设我理解您的实际问题,如果您将这些索引映射到任何 Comparable 值(在该“外部”数组中)并且您想根据该值设置优先级,您可以简单地使用:

Comparable[] array = TheOtherClass.getArray(); // ???
Comparator<Integer> comparator = (left, right) -> array[left].compareTo(array[right]);

【讨论】:

以上是关于与java中的优先级队列混淆的主要内容,如果未能解决你的问题,请参考以下文章

Java集合与数据结构 优先级队列堆

Java集合与数据结构 优先级队列堆

java中的队列有哪些,有啥区别

优先队列原理与实现

Java集合与数据结构——优先级队列的使用及练习

java数据结构----队列,优先级队列