使用lambda在Java中对列表进行排序
我有一个列表元素列表,现在我想使用lambda表达式对该列表进行排序,但我得到了编译错误:使用lambda在Java中对列表进行排序,java,lambda,java-8,compiler-errors,Java,Lambda,Java 8,Compiler Errors,我有一个列表元素列表,现在我想使用lambda表达式对该列表进行排序,但我得到了编译错误: 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) -> {
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的工作代码:
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) -> {})
.sort需要一个包含两个列表并返回整数的函数
您提供的lambda接受两个列表,并且不返回任何内容
您需要在lambda中返回一个值。您的lambda中缺少一个return语句:
positions.sort((List<Integer> ele1, List<Integer> ele2) -> {
// logic...
return some_number;
});
你忘了从你的lambda返回一些号码。