java - 如何创建一个具有两个值的 ArrayList,一个是 String,一个是 int?

标签 java arraylist

我的 friend 做了一个“游戏”,他让你使用一堆 if - else 语句来选择剑和东西。我试图通过制作一个基于文本的游戏来超越他,其中一个随机怪物从 ArrayList 中产生。每个怪物都需要有一个名字和一个生命值。我需要能够选择一个随机的怪物,我想做到这一点,这样我就可以使用以下方式对 ArrayList 进行打乱:

Collections.shuffle(Monster);

我以前制作过一个多维数组,但我不确定如何制作一个每个位置都有两个值的 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);?

编辑:我完成了游戏,并最终学习了如何使用类来制作对象;谢谢大家提出建议。我从几个回复中学到了很多东西!

最佳答案

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

如果没有,您可以只创建一个具有这 2 个属性的新类,并使用 ArrayList 来保存从该类创建的对象。

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

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

Collections.shuffle(monsterList);  //to shuffle it

关于java - 如何创建一个具有两个值的 ArrayList,一个是 String,一个是 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46655391/

相关文章:

java - android中Context的基本解释

java - 如何将两个映射合并为一个并保留重复值

java - 从 Java 数组列表中删除学生时出错

Arraylist中的Java内存分配

jsp - JSP页面中的类型安全警告

java - 通过时间戳创建,让数据库管理它更好,还是让应用程序管理更好?

java - PowerMockito如何在构造函数调用时抛出异常

java - 如何将Java应用程序连接到X11以移动光标

java - 同时添加到 ArrayList 的并发线程 - 会发生什么?

java - Play 框架 scala 查询绑定(bind) java 类