用lambda对名称进行排序,与泛型类相反

kxxlusnw  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(262)

在我的taks中,我需要按照泛型类的逆字母顺序对列表进行排序。
类具有参数:

public class CarSaloon<T extends Car>

private List<T> listOfCars:

public CarSaloon(){this.listOfCars= new ArrayList<T>;} + get and set

大体上,我有一份汽车清单,我做了如下工作:

List<CarSaloon> listSorting = (List<CarSaloon>) carSaloon.getListOfCars
.stream
.sorted(Comparator.comparing(Car::getName).reversed())
.collect(Collectors.toList());

我的意见:
保时捷->奥迪->宝马
结果应为:
保时捷->宝马->奥迪
但它给了我相反的输入:宝马->奥迪->保时捷
编辑:
我把它印成这样:

for(Car c:listSorting)
 System.out.println(c.toString());

倒过来就是倒过来,但我要按字母顺序排序

lzfw57am

lzfw57am1#

您应该重写 Comparator 以你想得到结果的方式。你的班级应该 implement Comparator 并添加:

@Override
    public int compare(ClassName car1, ClassName car2) {
        String carName1= car1.getCar();
        String carName2 = car2.getCar();

        // ascending order (descending order would be: name2.compareTo(name1))
        return name1.compareTo(name2);
    }

如果它不能给你想要的输出-修改它。

相关问题