我有一个类汽车经销商,并且有一个列表列出了所有汽车的年份,型号,马力等等。
inventory.add(new Lamborghini(1971, "urraco", 371.3, false));
inventory.add(new Lamborghini(1971, "urraco", 371.3, false));
inventory.add(new Lamborghini(1973, "countache", 373.3, false));
inventory.add(new Lamborghini(1974, "silhouette", 374.3, false));
inventory.add(new Lamborghini(1975, "jalpa", 375.3, true));
等等。我被要求完成这个get方法
public ArrayList<Lamborghini> getCarsFromThisYear(int year)
如果没有具有特定模型年份的lamborghini对象并返回具有特定模型年份的所有lamborghini对象的arraylist,则返回空arraylist的条件。
我开始做这样的事情......
public ArrayList<Lamborghini> getCarsFromThisYear(int year){
for(Lamborghini cars : inventory)
{
if(cars.getModelYear() == year){
}
}
}
但不知道该如何陈述if,返回什么,或者即使我走在正确的道路上。
有任何建议或指导吗?
答案 0 :(得分:0)
我建议:
public ArrayList<Lamborghini> getCarsFromThisYear(int year) {
ArrayList<Lamborghini> thisYearLamb = new ArrayList<Lamborghini>();
for(Lamborghini cars : inventory)
{
if(cars.getModelYear() == year) {
thisYearLamb.add(cars);
}
}
return thisYearLamb;
}
答案 1 :(得分:0)
您需要将结果放入新列表中。因此,在顶部创建一个新列表,如ArrayList<Lamborghini> result = new ArrayList<Lamborghini>();
。您想将匹配项添加到列表中,请查看JavaDocs以了解如何执行此操作。
此外,您还有一个小错误:您应该cars.getModelYear().equals(year)
。
答案 2 :(得分:0)
您应该返回一个对象的ArrayList。因此,创建一个ArrayList并将符合条件的每辆汽车添加到列表中。最后返回该列表。
public ArrayList<Lamborghini> getCarsFromThisYear(int year){
ArrayList<Lamborghini> list = new ArrayList<Lamborghini>();
for(Lamborghini car : inventory)
{
if(car.getModelYear() == year){
list.add(car);
}
}
return list;
}
如果您使用的是Java 8:
public List<Lamborghini> getCarsFromThisYear(int year){
return inventory.stream().filter(car -> car.getModelYear() == year).collect(Collectors.toList());
}