我正在计划一个游戏,我将有数百个游戏对象应按特定顺序绘制,并且每个游戏对象都能够生成应保留在其父对象位置的对象(如果父对象是在中间画出,也应该画在那里)。
所以我需要能够快速执行以下操作的列表: add(),insertAt(pos),remove(pos),get(pos)
我已经分析了一些数据并得出以下结论:
我将使用无序数组的libgdx存储对象,其中包含:
add() - O(1)
remove(pos) - O(2),因为它使用交换技术并在最后删除最后一个元素
插入(pos) - O(2)出于同样的原因
get() - O(1)
我还将使用LinkedList来保持顺序以及对无序数组的引用,因此我可以快速地在中间添加对象。
我想问这是最好的方法,还是我错过了什么?