【问题标题】:How to implement max heap with pair using priority queue in java?java - 如何在java中使用优先级队列实现最大堆?
【发布时间】:2021-07-07 13:11:37
【问题描述】:

我正在尝试用 java 中的键值对实现 Max heap。正如我们在 C++ 中所知道的,我们可以通过这种方式做到这一点..

    priority_queue<pair<int, int> > pq;
    pq.push(make_pair(10, 200));
    pq.push(make_pair(20, 100));
    pq.push(make_pair(15, 400));

但我无法在 java 中执行此操作,请帮助我执行此操作。

【问题讨论】:

标签: java heap priority-queue


【解决方案1】:

Java 中,您可以使用HashMap

import javafx.util.Pair;
import java.util.PriorityQueue;

public class YourClass{

    public static void main (String[] args){

        int n = 3;

PriorityQueue<Pair<Integer,Integer> > pq = new PriorityQueue<Pair<Integer,Integer>>(n, Comparator.comparing(Pair::getKey));

  /*Adding elements to HashMap*/
  pq.add(new Pair <> (10, 200));
  pq.add(new Pair <> (20, 100));
  pq.add(new Pair <> (15, 400));

 System.out.println(l.poll().getValue()); 
    }
}
 

【讨论】:

  • 哈希映射中没有像poll这样的方法。您需要知道密钥才能获取元素。
  • 对不起,其实我已经找到了这种类型的代码,但无法正确理解。如果您也解释这些,我们将非常感激!
猜你喜欢
  • 1970-01-01
  • 2018-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-30
相关资源
最近更新 更多