gpt4 book ai didi

java - 具有状态的 ArrayList 元素

转载 作者:太空宇宙 更新时间:2023-11-04 13:22:33 24 4
gpt4 key购买 nike

假设我有一个对象的 ArrayList - 例如屏幕上的 Sprite 。

我循环遍历这些对象来计算它们接下来要做什么,但为了做到这一点,我必须保持它们之前的状态(例如,为了知道对象 A 应该移动到右侧,我必须知道之前我们已经将其移动到右侧)。

可以随时向 ArrayList 添加或删除对象。

鉴于该对象没有提供跟踪此对象的方法,那么保持状态的最佳方法是什么?

最佳答案

如果可以的话,最好的选择是将 Sprite 类扩展为一个跟踪先前位置的子类。不过,您是否可以执行此操作取决于您的 ArrayList 来自何处:您可能会或可能不会控制实例的构造。

如果不能,我建议使用这些对象中的 HashMap 来存储您需要跟踪的状态(例如,之前的位置)。

当您更新时,您可以循环遍历ArrayList,并在 map 中查找每个对象以找到它曾经所在的位置。然后,您需要更新其在屏幕上的位置,并将先前位置的 map 缓存更新为新位置。

另一种选择是创建一个包装对象,其中包含由组合组成的 Sprite ,并且还包含其先前的位置,然后将这些包装对象存储在您的 ArrayList 中。

关于java - 具有状态的 ArrayList 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32946511/

24 4 0