假设我们有一个对象数组列表ObjArray
。
该对象在列表中定位自己并将自己从列表中删除的最有效方法是什么?
我倾向于使用的方式是这样的:
- 列表中的每个对象都有一个与其在列表中的位置相对应的 ID
- 当
object.remove()
被调用时,对象只是简单地调用ObjArray.remove(ID)
. ObjArray
从索引 ID 向上解析,调用ObjArray.get(i).ID
--. 这会将已移除对象上方的所有对象设置为正确的 ID。
另一种方法当然是简单地解析ObjArray
,直到找到对象匹配。
那么,有没有更好的方法来做到这一点?ArrayList
不是必须的,如果a HashMap
orLinkedList
可以用来做更好的事情,那也一样好。
根据要求提供更多信息。
对象包含有关它们需要在屏幕上绘制的位置以及要绘制的图像的信息。主 JPanel的paint
功能由计时器调用。该paint
函数循环遍历列表ObjArray
并调用对象的绘制函数 ( Obj.draw(Graphics g)
)。
通过单击可以添加或删除对象。
当一个对象被删除时,它需要将自己从ObjArray
列表中删除。我已经在第一部分中说明了我能想到的两种方法。
我想知道是否有人知道更有效的方法。
简而言之:一个项目在列表中查找/了解其位置的最有效方法是什么