首页 > 解决方案 > java - 如何在java中使用优先级队列实现最大堆?

问题描述

我正在尝试在 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中做到这一点,请帮我这样做。

标签: javaheappriority-queue

解决方案


Java你可以使用 a 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()); 
    }
}
 

推荐阅读