я получил вопрос о том, как возвращать значения, когда метод вызывается в основном методе, вот мой частичный код:как вернуть значение в методе в Java
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;
}
.................
Когда я назвал метод поиска в основном класс:
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());
третьи значения позиции, что означает, мазда и Хонда имеют ту же позицию, и предполагается печатать оба, но когда я запускаю его, он печатает только Мазду, я запутался, пожалуйста, сообщите, ура!
На боковой ноте вы не должны делать d.getPosition() == position', потому что float имеет ограниченную точность и не может сравниться с этим. Либо используйте ints, либо выполните что-то вроде 'Math.abs (d.getPosition() - position) <0.000001'. –
возвратите коллекцию или передайте ее как параметр методу –