我正在使用ArrayList作为我的“ list ”。
我在想办法添加相同项目的多个而不在“库存”中占一席之地时遇到了麻烦。例如:我在库存中添加了一种药水。现在,我添加了另一种药水,但是这次没有向库存中添加另一种药水,而是应该显示我拥有:药水x 2,而只占用ArrayList中的一个位置。我提出了一些解决方案,但我觉得它们似乎是不好的做法。我尝试的一种解决方案是向项目本身添加AMOUNT变量并对其进行递增。帮助我找到更好的解决方案?

编辑:好的,请忽略以上内容。我已经得到了很好的答案,但是令我惊讶的是,几乎没有关于角色扮演游戏 list 系统的教程。我已经做了很多Google搜索,找不到任何好的示例/教程/源代码。如果有人能指出一些好的示例/教程/源代码(与什么语言无关,而是首选的Java,甚至是c/c++),我将不胜感激,谢谢。哦,还有关于这个主题的任何书籍。

最佳答案

解决此问题的常用方法(使用标准API)是使用Map<Item, Integer>,它将一个项目映射到库存中此类项目的数量。

获得某个项目的“金额” ,则只需调用get:

inventory.get(item)

,请在您的广告资源中添加一些
if (!inventory.containsKey(item))
    inventory.put(item, 0);

inventory.put(item, inventory.get(item) + 1);

,例如,您可以从库存中删除
if (!inventory.containsKey(item))
    throw new InventoryException("Can't remove something you don't have");

inventory.put(item, inventory.get(item) - 1);

if (inventory.get(item) == 0)
    inventory.remove(item);

如果在很多地方这样做可能会变得困惑,因此我建议您将这些方法封装在Inventory类中。

祝你好运!

关于java - Android游戏RPG盘点系统,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6881596/

10-11 22:20
查看更多