【发布时间】:2021-05-31 05:58:00
【问题描述】:
请帮助我使用以下代码行-(在 Java 中)
PriorityQueue<Node> pq
= new PriorityQueue<>(
new Comparator<Node>() {
public int compare(Node a, Node b)
{
return a.data - b.data;
}
});
请解释上述代码行中究竟发生了什么,以及在创建优先队列对象时使用了什么类型的构造函数。还请解释在上面的代码中,当 a.data-b.data 返回时,排序是如何发生的。 (节点与链表相关)
【问题讨论】:
-
这里有大约十个问题,最终都归结为“我看不懂这段代码”。一步一步来。首先了解
Comparator是什么(有Javadocs),然后看看PriorityQueue的构造函数。如果这些步骤太大或 Javadocs 无法理解,那么请选择一本关于 Java 类的好书/教程,并确保您牢牢掌握。 -
除此之外,您还需要了解什么是匿名类。
-
这里要理解的关键部分是
new Comparator<Node>() {部分,它创建了一个匿名类的实例。由于您似乎不知道那是什么,因此您现在应该拿起您的 Java 指南并寻找一个教您匿名类的部分。
标签: java comparator