在 Java 中比较随机列表和有序列表



我正在研究一个希望在Minecraft模组中使用的想法。基本上,我想要一个包含类列表的对象(例如我的世界项目)。然后,我希望玩家将这些物品扔进容器中,以便创建食谱。如果有人玩过Thaumcraft,那么他们就会得到基本的想法。

任何人,这就是我迷路的地方。

我正在寻找一种方法来创建容器中的项目列表并确定配方列表是否已统计。通常,我认为我可以使用与两个列表匹配的简单比较方法来做到这一点。但关键是玩家能够随机将项目插入容器中,所以我需要将随机顺序与有序列表进行比较。

所以基本上我正在寻找的是这个;

  • 列表 1(玩家列表)*将始终是特定顺序,因为它一个食谱

  • 列表
  • 2(容器的内部列表)*有可能是随机的

我需要搜索容器以查看列表 1 是否与列表 2 匹配。

我该怎么做呢?使用列表(字面意思是Java List类)是正确的想法吗?

一个简单的解决方案是对每个列表进行排序。然后,您可以逐项比较。 如果列表大小相同,并且每个索引处的元素匹配,则列表本身就是匹配项。

即使列表 1 的顺序不能更改,也只需克隆它,对克隆进行排序,并将其与列表 2 的排序版本进行比较。

最新更新