java - 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中做到这一点,请帮我这样做。
解决方案
在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());
}
}
推荐阅读
- python - Matplotlibrc 需要更新吗?
- android - 旧的 Android 加载到新的 Eclipse
- amazon-s3 - 是否有用于获取所有区域列表的 AWS API?
- django - 如何从 Oracle 向 Python-django 发送信号
- javascript - 浏览器中的 Python 和 React/Redux?(WAS:Transcrypt 和 React/Redux)
- c - 将 C 数组初始化为自定义字符
- javascript - 未在 aws Lambda 函数中识别 httpMethod
- r - 向量化 for 循环
- reactjs - 如何将 Tableau 与 React JS 集成
- java - 将 JDBC Java 客户端连接到本地主机上的 SQL Developer