java - Java方法中如何返回值

标签 java class return

我有一个关于在 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/

相关文章:

java - Micronaut 中的多个身份验证提供程序

java - 所有 "objects"一个缓存还是每种类型一个缓存? - 带缓存的网络应用程序( Guava )

javascript - 将多个 div 元素包裹在同一个类中

php - 在销毁/取消设置(执行 __destruct() )后如何访问对象的属性?

Python:返回可能不返回值

java - 如何在不使用多次返回的情况下返回值

java - 如何避免 javax.persistence.EntityExistsException : different object with the same identifier?

java - 无法在 Android 中写入文件,只读文件系统

c++ - C++中派生类的对象可以被父类访问吗?

java - Java 中返回原始数组的不一致