Java 哪种管理磁贴阵列的方法更好?
所以在这个游戏中,我要编程的“棋盘”是一个瓷砖阵列。我必须得到哪种类型的瓷砖在某些位置,并将其移动。不是每个可能有磁贴的位置都有磁贴 我认为有两种方法可以做到这一点 1)有一个2D瓷砖阵列。瓷砖板的尺寸将等于阵列的尺寸。没有平铺的位置将由Java 哪种管理磁贴阵列的方法更好?,java,arrays,arraylist,Java,Arrays,Arraylist,所以在这个游戏中,我要编程的“棋盘”是一个瓷砖阵列。我必须得到哪种类型的瓷砖在某些位置,并将其移动。不是每个可能有磁贴的位置都有磁贴 我认为有两种方法可以做到这一点 1)有一个2D瓷砖阵列。瓷砖板的尺寸将等于阵列的尺寸。没有平铺的位置将由null表示。这些将被组织,以便myArray[1][1]将引用(1,1)处的磁贴 优点:在特定坐标处很容易找到瓷砖 缺点:看起来很笨重,数组中的许多分片都是空的 2)有一个规则的无序排列的瓷砖列表。因为平铺有一个x和一个y分量,所以我不需要对其进行排序 优点:
null
表示。这些将被组织,以便myArray[1][1]
将引用(1,1)处的磁贴
优点:在特定坐标处很容易找到瓷砖
缺点:看起来很笨重,数组中的许多分片都是空的
2)有一个规则的无序排列的瓷砖列表。因为平铺有一个x和一个y分量,所以我不需要对其进行排序
优点:重量轻,占用内存少
缺点:当我需要在一个特定的坐标上找到一个磁贴时,我需要使用for循环并搜索每个磁贴
谢谢:)我脑海中的问题是:使用一个具体的数组还是一个数组更好,而解决方案(在我脑海中)是“视情况而定”。如果您的宇宙可能非常大,那么一定要使用稀疏数组,否则您将在与当前无关的单元上浪费资源。另一方面,如果宇宙的大小很有限,那么具体数组(或某种类型的集合)的便利性就会显现出来。您可以尝试hashmap。保持坐标为关键点。并在值位置平铺值。 Ex pos(2,3)->2.3以此类推。。 这样可以优化搜索和内存