Java 使用与泛型类相反的lambda对名称进行排序
在我的TAK中,我需要按照和泛型类相反的字母顺序对列表进行排序 类具有以下参数:Java 使用与泛型类相反的lambda对名称进行排序,java,sorting,generics,Java,Sorting,Generics,在我的TAK中,我需要按照和泛型类相反的字母顺序对列表进行排序 类具有以下参数: public class CarSaloon<T extends Car> private List<T> listOfCars: public CarSaloon(){this.listOfCars= new ArrayList<T>;} + get and set 反向只需这样做,顺序是向后的,但我需要按字母顺序对其进行排序,您应该按照您希望得到结果的方式,覆盖Comp
public class CarSaloon<T extends Car>
private List<T> listOfCars:
public CarSaloon(){this.listOfCars= new ArrayList<T>;} + get and set
反向只需这样做,顺序是向后的,但我需要按字母顺序对其进行排序,您应该按照您希望得到结果的方式,覆盖
Comparator
中的compare方法。您的类只需实现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);
}
如果它不能给你想要的输出-修改它。你的代码非常混乱,看起来不像你想象的那样:你把
列表
和列表
搞混了。但是CarShop是通用列表,我需要对用t类Car扩展的类进行排序。我知道汽车店的等级应该是CarSaloon>Car。这只是我写的一个例子。我编辑了这篇文章,希望现在能更清楚地看到列表排序
应该是列表
类型,因为它包含汽车,而不是轿车。这就是为什么Intellij cast后面是@LouisWasserman提到的主要问题是列表类型不正确,应该是:列表排序=(List)carSaloon.getListOfCars()代码>然后分类工作正常:carsaroon carsaroon=新carsaroon();carSaloon.setListOfCars(阵列.asList(新车(“奥迪”)、新车(“保时捷”)、新车(“宝马”)代码>排序输出:Car:Porsche->Car:BMW->Car:Audi
这是另一项任务,我已经完成了,但肯定有帮助!我可以用if T extensed class Car做吗?@sdavb当然,你应该像公共类SomeClass
那样做。希望我在任何方面都能帮助您:)当您想要得到“T必须扩展片段并实现SomeInterface”这样的结果时,我们就是这样做的,我会尝试一下
for(Car c:listSorting)
System.out.println(c.toString());
@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);
}