如何使用ArrayList创建多个对象?

时间:2014-11-19 21:40:51

标签: java arraylist

我需要使用java.awt制作50个小球和1个大球。我的一个项目问题是创建许多小球,我尝试使用构造函数来完成它。

这是Sec类中的一个构造函数,用于创建小球:

private Main main;

public Sec(Main main){
    this.main=main;

}

这是来自创造大球的第一类:

private Main main;

public First(Main main){

    this.main=main;

}

让一切运转的主要课程:

public class Main extends JPanel {

First f = new First(this);    // first big ball

Sec s1 = new Sec(this);      // first small ball
Sec s2 = new Sec(this);      // second small ball
Sec s3 = new Sec(this);      // etc
  (...)

就像你可以看到上面我分别创建每个对象,我需要制作50个,所以我认为使用ArrayList会更有效率。所以我试过了:

ArrayList<Sec> tab = new ArrayList<Sec>();{

   tab.add(object1);   // It displays hint "cannot find symbol"

   }

这是错误:

 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code -       Erroneous tree type: <any>
    at project.Main.<init>(Main.java:22)
    at Project.Main.main(Main.java:117)

3 个答案:

答案 0 :(得分:0)

试试这个:

ArrayList<Sec> secs = new ArrayList<Sec>(50); // Declare this as a class field

在课堂内&#39;构造函数,循环并向每个位置添加新的Sec实例。

public YourClass()
{
    for(int i = 0; i < 50; i++)
        secs.add(new Sec(...));  //include whatever valid arguments to Sec constructor
}

答案 1 :(得分:0)

  

我需要制作50个,所以我认为使用ArrayList会更有效率

ArrayList不会制作对象,但它可以是保留它们的有用位置;

int NUM_BALLS=50;
ArrayList<Sec> balls = Lists.newArrayListWithCapacity(NUM_BALLS);

for (int i=0 ; i<NUM_BALLS ; i++) {
    balls.add(new Sec(...));

}

B.T.W。:Sec是一个有趣的名字,对象应该代表一个球。

答案 2 :(得分:0)

我想这个,

 ArrayList<Sec> tab = new ArrayList<Sec>();
 tab.add(object1); 

应该是

 tab.add(s1); 
 tab.add(s2); 
 tab.add(s3); 

或者使用钻石操作符<>Arrays.asList(T...)

 List<Sec> tab = new ArrayList<>(Arrays.asList(s1,s2,s3));