Java 对一组类使用ArrayList更有效的方法?

Java 对一组类使用ArrayList更有效的方法?,java,arrays,arraylist,processing,Java,Arrays,Arraylist,Processing,我有一堆不同的敌人职业,它们的移动和行为都不同,而且通常会在屏幕上生成多个实例,因为它们基本上都是随机的,所以我需要使用ArrayList,以便我可以控制每个敌人职业的行为 但是,这给我留下了一堆数组列表如下: //Example: ArrayList<Enemy1> enemies = new ArrayList<Enemy1>(); ArrayList<Enemy2> enemies = new ArrayList<Enemy2>(); Arr

我有一堆不同的敌人职业,它们的移动和行为都不同,而且通常会在屏幕上生成多个实例,因为它们基本上都是随机的,所以我需要使用ArrayList,以便我可以控制每个敌人职业的行为

但是,这给我留下了一堆数组列表如下:

//Example:
ArrayList<Enemy1> enemies = new ArrayList<Enemy1>();
ArrayList<Enemy2> enemies = new ArrayList<Enemy2>();
ArrayList<Enemy3> enemies = new ArrayList<Enemy3>();
ArrayList<Enemy4> enemies = new ArrayList<Enemy4>();
ArrayList<Enemy5> enemies = new ArrayList<Enemy5>();
//示例:
ArrayList=新的ArrayList();
ArrayList=新的ArrayList();
ArrayList=新的ArrayList();
ArrayList=新的ArrayList();
ArrayList=新的ArrayList();
有没有办法更改ArrayList将存储的数据类型,以便清空并重新使用同一ArrayList的不同实例?或者别的什么,只是为了让我的代码中不必有10亿个ArrayList

其他信息: 我使用Java处理库来做这件事,不确定它是否改变了什么


很抱歉,如果答案对您来说是显而易见的,请不要粗鲁。

您所有的
EnemyX
类必须从一个接口或抽象类继承,然后您可以使用一个
列表
来保存任何
EnemyX
对象

Interface Enemy{}

Class Enemy1 implements Enemy{}
Class Enemy2 implements Enemy{}
Class Enemy3 implements Enemy{}
使用

listl=newarraylist();
l、 添加(新的Enemy1());
l、 添加(新的Enemy2());
l、 添加(新的Enemy3());

您可以使用所需的方法将
敌方
超类定义为(抽象或不抽象),并从中扩展所有其他
敌方…
类,然后从超类访问子类:

public class Enemy { }

public abstract class Enemy { }

class Enemy1 extends Enemy { }
class Enemy2 extends Enemy { }
class Enemy3 extends Enemy { }
class Enemy4 extends Enemy { }

public static void main(String[] args) {
    List<Enemy> l = new ArrayList<>();
    l.add(new Enemy1());
    l.add(new Enemy2());
    l.add(new Enemy3());
}
公共类敌人{}
公共抽象类敌人{}
类Enemy1扩展了敌人{}
类Enemy2扩展了敌人{}
类Enemy3扩展了敌人{}
类Enemy4扩展了敌人{}
公共静态void main(字符串[]args){
列表l=新的ArrayList();
l、 添加(新的Enemy1());
l、 添加(新的Enemy2());
l、 添加(新的Enemy3());
}

您考虑过使用泛型吗?我的意思是做一些事情,比如
ArrayList=newArrayList()。更多信息:谢谢,这正是我需要的!你的
敌人是什么
班级结构?
Enemy1
Enemy2
Enemy3
等是否继承自
敌方
类?如果是这样,
ArrayList
是否有效?
public class Enemy { }

public abstract class Enemy { }

class Enemy1 extends Enemy { }
class Enemy2 extends Enemy { }
class Enemy3 extends Enemy { }
class Enemy4 extends Enemy { }

public static void main(String[] args) {
    List<Enemy> l = new ArrayList<>();
    l.add(new Enemy1());
    l.add(new Enemy2());
    l.add(new Enemy3());
}