gpt4 book ai didi

java - 使用Lambda在Java中对列表进行排序

转载 作者:行者123 更新时间:2023-12-02 11:15:06 25 4
gpt4 key购买 nike

我有一个列表元素的列表,现在我想使用lambda表达式对该列表进行排序,但出现编译错误:

这是没有lambda的工作代码:

Collections.sort(positions, new Comparator<List<Integer>>() {
public int compare(List<Integer> ele1, List<Integer> ele2) {
// some logic here
return some_number;
}
});

现在使用lamda,我正在尝试:
positions.sort((List<Integer> ele1, List<Integer> ele2) -> {

});

但是得到这个编译错误:
The method sort(Comparator<? super List<Integer>>) in the type List<List<Integer>> is not applicable for the arguments ((List<Integer> ele1, List<Integer> ele2) -> {})

最佳答案

您在lambda中缺少return语句:

positions.sort((List<Integer> ele1, List<Integer> ele2) -> {
// logic...
return some_number;
});

但是请注意,在Java 8中对此类列表进行排序的惯用方式是使用 Comparator#comparing调用:
positions.sort(Comparator.comparing(l -> logic_that_produces_some_comparable));

关于java - 使用Lambda在Java中对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53134135/

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