我有一个汽车对象列表。每个汽车对象都有一个类型,指示它是轿车、suv、双门轿车、面包车还是卡车)以及其他属性。假设我的应用程序按下面列出的顺序排列这些
- 轿车(最低)
- 轿跑车
- 范
- 越野车
- 卡车(最高)
如何从列表中找到排名最高的类型。
class Car {
public Car (String type, String model, int year, long mileage){
this.type=type;
this.model = model;
this.year = year;
this.mileage = mileage;
}
private String type; // Sedan, SUV etc
private String model; // Focus, Corolla, Camry, Taurus etc
private int year;
private long mileage;
//getters
}
List<Car> allCars = new ArrayList();
allCars.add(new Car("Coupe", "Focus", 1999, 50000) );
allCars.add(new Car("Sedan", "Camry", 2007, 60000) );
allCars.add(new Car("Truck", "Sierra", 2007, 50000) );
allCars.add(new Car("Truck", "F-150", 2001, 60000) );
allCars.add(new Car("Van", "Sienna", 1999, 40000) );
Java 5 中查找卡车(具有最高等级类型的汽车)的最有效方法是什么。如果需要,我可以使用 apache commons api 或 guava。
我可以循环并创建一组独特的类型。
Set<String> uniqueTypes = new HashSet<String>;
for(Car car: allCars) {
uniqueTypes.add(car.getType);
}
使用上面的集合,我怎样才能找出最大值(即本例中的卡车)。Collections.max() 会按自然顺序返回最大值吗?