创建未知数量的对象实例的有效方法

Efficient way to create unknown number of object instances

我需要创建多个 class 实例并将它们添加到一个数组中(我目前使用的是 ArrayList,但如果需要我可以更改它)。我需要对大约 20 个其他 classes 执行此操作,每个都有不同数量的实例。比为每个项目编写 for 循环更有效的方法是什么?

例如

  ArrayList<Tile> bag = new ArrayList<Tile>();
  num_tile_a = 10;
  num_tile_b = 6;
  num_tile_c = 4;
  num_tile_d = 8;

  for (int i = 0; i < num_foo; i++){
      bag.add(new Tile_a());
  ....

编辑:在此示例中,Tile_a、Tile_b、Tile_c 和 Tile_d 都是 Tile [=] 的不同子 classes 21=].

我无法发表评论,所以我会 post 回复...反对编写 24 个不同循环的方法是从可以创建对象到数字的工厂映射对象。

类似

interface <T> IFactory {
 T create();
}

然后每个 class 都有一个工厂。

Map<IFactory,Integer> factoryToNumOfInstances;

另一种选择是,如果这些 class 中的每一个都有一个默认的构造函数,并且您不使用任何泛型,那么您可以获得

的映射
Map<Class,Integer> classToNumOfInstances;

然后调用方法 newInstance();

clazz.newInstance();