管理瓷砖阵列的哪种方法更好?

时间:2014-11-15 05:43:43

标签: java arrays arraylist

所以在这个游戏中,我正在编写" board"是一个瓷砖阵列。我必须得到哪种类型的瓷砖在某些位置并移动它们。不是每个可以有瓷砖的位置都有一个瓷砖。

我看到两种方法。

1)拥有二维瓷砖阵列。瓷砖中电路板的尺寸等于阵列的尺寸。没有图块的地方将由null表示。这些将被组织,以便myArray[1][1]将引用(1,1)处的图块。

优点:轻松找到特定坐标的图块

缺点:看起来很笨重,数组中的许多Tiles都将为null。

2)有一个常规无序的瓷砖ArrayList。由于tile具有x和y组件,因此我无需对其进行排序。

优点:轻量级,占用更少内存

缺点:当我需要在特定坐标处找到一个图块时,我需要使用for循环并搜索每个图块

谢谢:)

2 个答案:

答案 0 :(得分:0)

我心中的问题是:使用具体数组或sparse array是否更好,解决方案(在我看来)又是“它依赖”。如果您的Universe可能非常大,那么肯定使用稀疏数组,否则您将在没有当前相关性的单元格上浪费资源。另一方面,如果宇宙的大小受到限制,那么混凝土阵列(或某种类型的集合)的便利性将会凸显出来。

答案 1 :(得分:0)

您可以尝试使用hashmap。在哪里保持坐标为关键。并在值位置平铺值。 Ex pos(2,3) - > 2.3等等.. 这样可以优化搜索和内存。