java优先队列这里的构造函数用法该怎么理解?
发布网友
发布时间:2022-04-23 06:11
我来回答
共1个回答
热心网友
时间:2023-01-23 16:41
很明显,用到的构造函数是 PriorityQueue(Comparator<? super E> comparator) 。
所以 ((a, b) -> a[0] - b[0]) 所代表的是一个 comparator 。
不明白这个式子,说明对与 JDK8 中的 lamda 表达式不熟悉 。
其实这个式子是 对 Comparator 接口中 int compare(T o1, T o2)方法的具体实现 。
(a, b) 代表的是 compare方法中的两个参数。
a[0] - b[0] 代表compare方法的返回值。
PriorityQueue 有了 comparator 比较器,便能确定队列中元素的优先级。