【问题标题】:After adding my instances to my arraylist collection, how do I make it so that I can input the variables I need for my instances during iteration?将我的实例添加到我的 arraylist 集合后,如何制作它以便我可以在迭代期间输入我的实例所需的变量?
【发布时间】:2019-01-17 21:35:04
【问题描述】:

作为初学者,我正在练习用 Java 编码,我正在创建一个项目,其中我有一个类汽车以及其他类,例如 carParts、车轮、发动机和燃料。

我正在将我的 carParts 的实例添加到我的类 Car 中,然后将它们添加到我试图迭代它们的 ArrayList 中。

我尝试绘制所有内容,但我想我只是对什么指向什么感到困惑。

我最初的想法类似于

List<CarPart> carParts = new ArrayList<CarPart>();
carParts.add(myWheels.wheels(4));
carParts.add(myEngine.engine("good engine"));
carParts.add(myFuel.(100)); `

但这只是在我开始迭代之前运行了这三个,所以我只是简单地将其更改为

List<CarPart> carParts = new ArrayList<CarPart>();
carParts.add(myWheels);
carParts.add(myEngine);
carParts.add(myFuel); `

这样我可以在迭代过程中添加变量

public class Car {

  Wheels myWheels = new Wheels();
  Engine myEngine = new Engine();
  Fuel myFuel = new Fuel();

  public void run() {

    //have to make wheels(4), engine("good engine"), and fuel(100)

    List<CarPart> carParts = new ArrayList<CarPart>();
    carParts.add(myWheels);
    carParts.add(myEngine);
    carParts.add(myFuel);

    /*
    myWheels.wheels(4);
    myEngine.engine("good engine");
    myFuel.fuel(10);    
    */

    Iterator<CarPart> carPartIterator = carParts.iterator();
    while (carPartIterator.hasNext()) {
        //run each individually
        System.out.println(carPartIterator.next());
    }
  }
}

当我添加时

carParts.add(myWheels.wheels(4));
carParts.add(myEngine.engine("good engine"));
carParts.add(myFuel.fuel(100));

我得到了正确的输出,但不是在正确的位置,所以它是这样的:

Correct Output for wheels
Correct Output for engine
Correct Output for fuel

null
null 
null 

我想要的是将正确的输出放入null 的位置?

【问题讨论】:

  • 向我们展示您的CarPart 课程

标签: java arraylist collections iteration instance


【解决方案1】:

您的帖子中没有列出它,但这是我假设正在发生的事情。

List<CarPart> carParts = new ArrayList<CarPart>();
carParts.add(myWheels.wheels(4));
carParts.add(myEngine.engine("good engine"));
carParts.add(myFuel.(100));

您添加的方法内部有 print ln 语句,但不返回值。

您似乎希望在迭代汽车零件时打印出这些值。如果您所有的 Car Parts 都有一个共同的方法,即public String getString(),它将返回您想要的信息字符串,您可以执行以下操作:

Iterator<CarPart> carPartIterator = carParts.iterator();
while (carPartIterator.hasNext()) {
System.out.println(carPartIterator.next().getString());
}

您获得空值的原因是因为您调用的方法没有返回可打印的值,例如字符串。同样,我不确定,但我可以从你的帖子中推断出来。

查看this关于从方法返回值的教程了解更多信息。

【讨论】:

    猜你喜欢
    • 2019-06-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    • 2021-12-06
    • 1970-01-01
    相关资源
    最近更新 更多