覆盖ArrayList<>用于libGDX游戏的特定对象

时间:2015-03-03 22:09:04

标签: java arrays arraylist libgdx

如果这是一个简单的问题(这是我第一次问一个问题),请放轻松我,我仍然是libGDX的初学者并开始我的第一场比赛。

背景 我需要保留一份" Gem"我在列表中处理的游戏对象。目前我正在使用ArrayList,但是我使用多个辅助方法。不幸的是,因为我只使用通用的ArrayList,所有这些辅助方法都必须在我的主游戏类中。

我的问题: 为了尽可能保持我的代码干净,有没有办法覆盖整个ArrayList类只为我的" Gem"对象,这样我就可以添加所有的辅助方法,并且仍然可以使用Java定义的ArrayList<>对于其他对象?或者我是否必须创建一种伪ArrayList类来实现与ArrayList相关的所有方法?这似乎很乏味。

2 个答案:

答案 0 :(得分:0)

你的问题有点模糊。是否要扩展ArrayList以便只能放入类Gem的实例?如果是这样,你可以轻松地这样做:

public class GemList extends ArrayList<Gem> {
 //All your helper methods
}

并像这样使用它:

GemList gemList = new GemList();
gemList.add(new Gem());

答案 1 :(得分:0)

问题很模糊。我不确定你的&#34; Helper方法&#34;是什么意思。您可以只扩展ArrayList并将您的方法添加到该类签名。根据您提供的有限信息,覆盖由您自行决定。

public class MyList extends ArrayList<T> { 
    public MyList() { super(); }
}

但有一个问题。您的帮助方法......这些方法是遍历,选择,删除等等吗?如果是这样,我建议您选择不同的数据结构。您可以使用树结构来更轻松地根据状态/变量/位置进行导航,使用基于密钥的o(1)的HashMaps,能够获取邻居节点的链接列表等。