Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 哪种管理磁贴阵列的方法更好?_Java_Arrays_Arraylist - Fatal编程技术网

Java 哪种管理磁贴阵列的方法更好?

Java 哪种管理磁贴阵列的方法更好?,java,arrays,arraylist,Java,Arrays,Arraylist,所以在这个游戏中,我要编程的“棋盘”是一个瓷砖阵列。我必须得到哪种类型的瓷砖在某些位置,并将其移动。不是每个可能有磁贴的位置都有磁贴 我认为有两种方法可以做到这一点 1)有一个2D瓷砖阵列。瓷砖板的尺寸将等于阵列的尺寸。没有平铺的位置将由null表示。这些将被组织,以便myArray[1][1]将引用(1,1)处的磁贴 优点:在特定坐标处很容易找到瓷砖 缺点:看起来很笨重,数组中的许多分片都是空的 2)有一个规则的无序排列的瓷砖列表。因为平铺有一个x和一个y分量,所以我不需要对其进行排序 优点:

所以在这个游戏中,我要编程的“棋盘”是一个瓷砖阵列。我必须得到哪种类型的瓷砖在某些位置,并将其移动。不是每个可能有磁贴的位置都有磁贴

我认为有两种方法可以做到这一点

1)有一个2D瓷砖阵列。瓷砖板的尺寸将等于阵列的尺寸。没有平铺的位置将由
null
表示。这些将被组织,以便
myArray[1][1]
将引用(1,1)处的磁贴

优点:在特定坐标处很容易找到瓷砖

缺点:看起来很笨重,数组中的许多分片都是空的

2)有一个规则的无序排列的瓷砖列表。因为平铺有一个x和一个y分量,所以我不需要对其进行排序

优点:重量轻,占用内存少

缺点:当我需要在一个特定的坐标上找到一个磁贴时,我需要使用for循环并搜索每个磁贴


谢谢:)

我脑海中的问题是:使用一个具体的数组还是一个数组更好,而解决方案(在我脑海中)是“视情况而定”。如果您的宇宙可能非常大,那么一定要使用稀疏数组,否则您将在与当前无关的单元上浪费资源。另一方面,如果宇宙的大小很有限,那么具体数组(或某种类型的集合)的便利性就会显现出来。

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