gpt4 book ai didi

java - 解释 lambda 表达式

转载 作者:行者123 更新时间:2023-11-30 07:51:24 25 4
gpt4 key购买 nike

我有一个包含 lambda 表达式的方法:

public int noOfComplementaryPairs1(int arr[], int k) {

Map<Integer, Integer> map = new HashMap<Integer, Integer>();

for (int i = 0; i < arr.length; i++) {
map.merge(k - arr[i], 1, Integer::sum);
}

return Arrays.stream(arr).map(element -> map.getOrDefault(element, 0)).sum();
}

谁能给我解释一下最后两行是什么意思?我不是 Java 的新手,但有时我会对像这样的一些表达式感到困惑。

最佳答案

map.merge... :第一个参数是 map 中的键,第二个参数是当这个键不存在时 map 中的值,第三个是 BiFunction 告诉你如何合并两个键,因为你不能在 Map 中有两个具有相同值的键..

最后一行也非常简单:您正在对数组进行流式处理,将数组的每个元素映射到:map.getOrDefault(element, 0),这意味着从 中获取值>mapkey = element 或如果不存在则默认为零;然后将它们全部求和

关于java - 解释 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47129883/

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