Java:PriorityQueue初始化

毛豆:

我正在尝试了解以下行,该行将启动优先级队列:

PriorityQueue<int[]> pq = new PriorityQueue<>((a, b) -> b[1] - a[1]);

与文档中的“构造函数”部分相比,https://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html

我不知道它使用哪个构造函数。有人可以分享想法吗?

另外,有没有一个文档可以更好地解释/定义语法(a, b) -> b[1] - a[1]...尽管我可以猜测它的含义。

非常感谢!

rgettman:

您的构造PriorityQueue使用的是1.7(链接的Javadocs版本)中不存在的构造函数。

它使用一个构造函数,Comparator构造函数采用为Java 1.8添加的,与您提供的lambda表达式匹配。

创建PriorityQueue具有默认初始容量的,并且其元素根据指定的比较器进行排序。

以来:

1.8

Lambda表达式是Java 1.8引入的。在这里,基本上,您有2个参数和表达式与功能接口相匹配- Comparator

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章