我有一个关于在 main 方法中调用方法时如何返回值的问题,这是我的部分代码:
import java.util.ArrayList;
public class Race {
private ArrayList<Car>cars;
public Race(){
cars=new ArrayList<Car>();
}
public Car find(double position){
for(Car d:cars){
if(d.getPosition()==position){
return d;
}
}
return null;
}
.................
当我在主类中调用find方法时:
public class Test {
public static void main(String[] args) {
Race race=new Race();
Car mazda=new Car("Mazda",1.0,1.0,2.0,2.0);
Car honda=new Car("Honda",1.0,1.0,1.0,2.0);
race.addCars(mazda);
race.addCars(honda);
System.out.println(race.find(1.0).getName());
第三个值是position,这意味着mazda和honda具有相同的位置,并且应该打印两者,但是当我运行它时,它只打印mazda,我很困惑,请指教,干杯!
最佳答案
一种方法只能返回一个值。但您可以返回一个List
:
public List<Car> find(double position) {
List<Car> ret = new ArrayList<Car>();
for (Car c : cars)
if (c.getPosition() == position)
ret.add(c);
return ret;
}
如果这就是您所做的全部,您将得到以下输出:
[mazda, toyota]
如果您希望每个都在单独的行上,则需要遍历 main
中的列表并打印每个:
for (Car c : race.find(1.0))
System.out.println(c.getName());
关于java - Java方法中如何返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19255545/