gpt4 book ai didi

java - 带 lambda 表达式的 PriorityQueue

转载 作者:行者123 更新时间:2023-12-03 08:34:43 27 4
gpt4 key购买 nike

我试图了解 lambda 函数如何与 Java 中的堆一起使用。下面的函数是创建一个最大堆

PriorityQueue<Integer> pq = new PriorityQueue<>((x, y) -> y - x);

有人可以告诉我 (x, y) -> y - x) 的作用吗?我被告知“lambda 函数将采用两个整数作为输入参数,将它们相减,然后返回算术结果。”

如果我这样做

PriorityQueue<Integer> pq = new PriorityQueue<>((x, y) -> y - x);
pq.add(9);

pq.add(5);

System.out.println(pq.peek());

输出为 9,因为它是最大堆,但自 (9-5=4) 以来我不应该得到 4 作为输出吗?

最佳答案

9-5=49优先级 ,和pq.peek()返回不是优先级

new PriorityQueue<>(comparator);使用(x, y) -> y - x比较并确定下一个应该查看哪个值。

所以9-5=4大于5-9=-4

所以值 9将是第一个。

关于java - 带 lambda 表达式的 PriorityQueue<Integer>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64272125/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com