gpt4 book ai didi

java - 如何使用 lambda 表达式基于一个变量对对象列表进行排序?

转载 作者:行者123 更新时间:2023-11-29 10:01:02 26 4
gpt4 key购买 nike

我尝试在 JDK 1.8 中使用 lambda 表达式根据名称对对象列表进行排序。但它显示编译错误:

The left-hand side of an assignment must be a variable

代码:

    Train trains = new Train();
trains.setName("Yerlin");
trains.setCode("YYT");
Train trains2 = new Train();
trains2 .setName("Delhi");
trains2 .setCode("DEH");
List<Train > traindetail= new ArrayList<Train >();
traindetail.add(trains);
traindetail.add(trains2);
traindetail.stream().sorted(Train object1 , Train object2) -> object1.getName().compareTo(object2.getName()));

最佳答案

你缺少一个 parent :

airport.stream().sorted(Train object1 , Train object2) -> object1.getName().compareTo(object2.getName()));
^--here

但是,建议您使用更简洁的语法:

airport.stream().sorted(Comparator.comparing(Train::getName));

那么就没有 parent 可以错过了。对于 Streams API 的使用,我们通常会自由地应用静态导入,所以

airport.stream().sorted(comparing(Train::getName));

我看到您没有分配流对象,也没有应用任何终端操作,所以也许您应该知道上面的表达式仍然没有对您的数据采取任何行动。您刚刚声明一旦您应用终端操作,流将被排序。

关于java - 如何使用 lambda 表达式基于一个变量对对象列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28301710/

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