如何制作具有两个值的单个ArrayList,一个为String,一个为int?

Ben*_*son 1 java arraylist

我的朋友做了一个“游戏”,他让您使用一堆if-else语句选择剑和东西。我试图通过制作一个基于文本的游戏来推翻他,其中随机怪物从ArrayList中生成。每个怪物都需要有一个名称和hp值。我需要能够选择一个随机的怪物,并且我想做到这一点,所以我可以使用以下命令对ArrayList进行加扰:

Collections.shuffle(Monster);
Run Code Online (Sandbox Code Playgroud)

我之前制作过多维数组,但不确定如何在每个位置使用两个值制作ArrayList。

到目前为止,这是我的尝试:

List<String> Inventory = new ArrayList<String>();

    List<double[]> Monsters = new ArrayList<double[]>(2);
    List<String> Monster = new ArrayList<String>();

    Monster.add("Goblin");
    Monster.add("Josh");
    Monster.add("Gremlin");
    Monster.add("Unicorn");
    Monster.add("Possesed Elf");
    Monster.add("Shmorple");

    // Can I use Monsters.add(Monster);?
Run Code Online (Sandbox Code Playgroud)

编辑:我完成了游戏,最终学习了如何使用类制作对象;谢谢所有提出建议的人。我从一些回应中学到了很多!

use*_*460 5

如果整数和字符串值具有一对一的映射关系,则可以使用HashMap的ArrayList。

如果没有,则可以只创建具有这两个属性的新类,然后使用ArrayList来保存从该类创建的对象。

public class Monster{
    private int health;
    private String name;
}

List<Monster> monsterList = new ArrayList<>();

Collections.shuffle(monsterList);  //to shuffle it
Run Code Online (Sandbox Code Playgroud)