(); Has-6ren">
gpt4 book ai didi

java - 添加到 ArrayList 时如何避免 "incompatible parameter types in lambda expression"?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:23:00 25 4
gpt4 key购买 nike

我有以下代码

public static List<Integer> topKFrequent(int[] nums, int k) {
List<Integer> myList = new ArrayList<>();
HashMap<Integer, Integer> map = new HashMap<>();

for (int n : nums) {
if (!map.containsKey(n)) map.put(n, 1);
else map.put(n, map.get(n) + 1);
}

map.entrySet().stream()
.sorted(Map.Entry.<Integer, Integer>comparingByValue().reversed())
.limit(k)
.forEach((key, value) -> myList.add(key));

return myList;
}

forEach 抛出错误

Error:(20, 16) java: incompatible types: incompatible parameter types in lambda expression

如何修复/避免此错误?我不太确定如何在此处应用解释问题的答案:Lambda Expression and generic method

编辑:

鉴于答案,更正的方法是将 forEach 中的 lambda 替换为

.forEach((entry) -> myList.add(entry.getKey()));

最佳答案

entrySet()返回一组 Pair<K, V> .

forEach()的 lambda 因此采用该类型的单个参数;不是两个整数参数。

关于java - 添加到 ArrayList 时如何避免 "incompatible parameter types in lambda expression"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37126218/

25 4 0