【问题标题】:The best way to generate multiple version of 1 object JAVA生成 1 个对象 JAVA 的多个版本的最佳方法
【发布时间】:2015-09-14 10:17:43
【问题描述】:

我正在尝试生成行星,我想知道在 for 循环中创建对象的最佳方法。我还希望能够与 for 循环中的对象进行交互。例如改变他们的 x 和 y。 我们将不胜感激。

【问题讨论】:

  • 你试过new Planet()planet.setX()planet.setY()吗?
  • 这行得通,但我试图生成的不仅仅是一颗行星
  • 那么你需要一个对象列表ArrayList<Planet> Planets=new ArrayList<Planet>();
  • 如何创建对象列表/与对象列表交互?

标签: java for-loop auto-generate


【解决方案1】:
for(int i=0; i < numOfObjectsToMake; i++){
    Point p = new Point();//make whatever object
    p.x = valX; //set what ever here
    p.y = valY; //set what ever here
    //Problem - im going to lose the object
}

此时您需要某种方法来存储您创建的对象,否则循环的下一次迭代将替换它。

所以在这种情况下,我将使用列表来存储它,您可能需要考虑您可能想要将其存储在哪种类型的collection 中。也许列表、集合甚至数组都可以。

//Make list before so its within scope
ArrayList ls = new ArrayList<Point>();

for(int i=0; i < numOfObjectsToMake; i++){
    Point p = new Point();//make whatever object
    p.x = valX; //set what ever here
    p.y = valY; //set what ever here
    ls.add(p);//Problem solved i have stored the object
}

ls.get(...);//pull out objects later for use

【讨论】:

  • ls.add(..) 是自动递增还是替换最后一个条目?
  • 不,一个列表将为您保存无限数量的对象(直到您耗尽内存并崩溃为止)。是的,它索引了每一个,因此您可以将它们拉回来,即:ls.get(1) 我建议阅读/youtube 观看一些关于集合和管理对象的教程,它实际上是每个程序管理大量对象的方式。
  • 好的,感谢您提供详细的帮助,我不顾一切地去看一些视频来了解它的作用。
【解决方案2】:

例子:

List<Planet> planets = new ArrayList<>();
for(int i = 0; i < 10; i++) {
    Planet p = new Planet();
    p.setX(0);
    p.setY(0);
    planets.add(p);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 2011-05-18
    • 2012-05-30
    • 2023-01-07
    • 2021-12-15
    • 1970-01-01
    • 2015-11-14
    相关资源
    最近更新 更多