直接访问类似于数组的向量元素

时间:2010-05-23 15:20:30

标签: java vector multidimensional-array

我目前正在创建一个基于区块的游戏,其中游戏的元素被放置在四个不同的向量中(因为有多个具有不同属性的游戏对象,因此存储在不同的向量中)。

这些游戏元素本身包含x和y坐标,类似于它们存储在二维数组中的方式。我想知道是否有办法访问这些类似于二维数组访问的向量元素(目前我正在实现一个for循环来循环元素,同时比较它的坐标)。

当我需要在每个游戏周期刷新我的显示器时(因为大量的比较和循环),这种方式很糟糕。

我正在java btw中实现它。

3 个答案:

答案 0 :(得分:4)

我的建议是思考“面向对象”:创建一个名为Board或Grid的类,或者封装在2D数组或Vector of Vector之间进行选择的实现细节的任何拟合。添加一个方法,允许您将给定(i,j)索引的板令牌返回到板中。

答案 1 :(得分:2)

请勿使用Vector,请使用ArrayList

如果您有非常大的数据,请参阅缓冲区,例如IntBuffer

答案 2 :(得分:0)

三个想法:

  • 您可以使用HashMap,其坐标为键,元素为值。这比通过向量循环和轻量级内存更快。
  • 您可以在空坐标处存储null而不是元素。这样,您可以通过其坐标访问每个存储的内存。最快但内存密集的方式。
  • 加速您当前所做的事情:按照坐标对元素进行一次排序,然后使用二进制搜索在向量中找到它们。