使用lambda在Java中对列表进行排序

使用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) -> {

我有一个列表元素列表,现在我想使用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) -> {})
以下是不带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返回一些号码。