我有一个Car对象列表。每个汽车物体都有一个类型,表明它是轿车,SUV,轿跑车,货车还是卡车)以及其他属性。假设我的应用程序在下面通过特定对象属性查找HashSet/ArrayList中的最大值
- 轿车(最低)
- 跑车上市的顺序排列这些
- 凡
- 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或番石榴。
我可以循环并创建一组独特的类型。
Set<String> uniqueTypes = new HashSet<String>;
for(Car car: allCars) {
uniqueTypes.add(car.getType);
}
使用上面的设置,我怎么能找出最大(即卡车在这个例子中)。 Collections.max()会按自然顺序返回最大值吗?
使'type'成为'enum'。 – jlordo
您需要将'max'方法与'Comparator'一起使用,并告诉如何订购物品。 –