我正在尝试了解以下行,该行将启动优先级队列:
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]
...尽管我可以猜测它的含义。
非常感谢!
您的构造PriorityQueue
使用的是1.7(链接的Javadocs版本)中不存在的构造函数。
它使用一个构造函数,Comparator
该构造函数采用为Java 1.8添加的,与您提供的lambda表达式匹配。
创建
PriorityQueue
具有默认初始容量的,并且其元素根据指定的比较器进行排序。以来:
1.8
Lambda表达式是Java 1.8引入的。在这里,基本上,您有2个参数和表达式与功能接口相匹配- Comparator
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句