使用变量名创建Java数组

使用变量名创建Java数组,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我正在为Minecraft服务器制作一个插件,我需要一种方法将玩家存储在他们所在的竞技场的阵列中。例如: 插件加载所有创建的竞技场:Arena1Arena2Arena3 我需要它来创建一个名为Arenas的数组,并在里面为每个竞技场设置一个数组,在那里我可以存储玩家的名字,这样我就知道谁在哪个竞技场了。我希望你明白我的意思。我将以表格形式为您提供: Arenas{ Arena1{ "Player1" } Arena2{ } Arena3{

我正在为Minecraft服务器制作一个插件,我需要一种方法将玩家存储在他们所在的竞技场的阵列中。例如:

插件加载所有创建的竞技场:
Arena1
Arena2
Arena3

我需要它来创建一个名为
Arenas
的数组,并在里面为每个竞技场设置一个数组,在那里我可以存储玩家的名字,这样我就知道谁在哪个竞技场了。我希望你明白我的意思。我将以表格形式为您提供:

Arenas{
    Arena1{
        "Player1"
    }
    Arena2{

    }
    Arena3{

    }

} 
我希望你能理解,也希望你能帮助我。我知道你们很好

A
Map
应该能很好地完成这个任务。给定一个竞技场,它会给你一组玩家。

我会制作一张
地图


密钥是竞技场的名称,列表中是玩家的名称。

收藏可能是您的解决方案:

class Arena {
  Set<Player> players = HashSet<Player>();
}
职业竞技场{
Set players=HashSet();
}

如果需要通过名称访问它们,请将它们存储在
HashMap
中;如果随机访问足够,则将它们存储在
ArrayList
中。

您所追求的编程概念称为,Java中最常用的是
Java.util.HashMap
。竞技场的名称用作键,它们与值列表相关联。因此,一个简单的例子如下:

Map<String, List<String> arenas = new HashMap<>();
//create player list for Arena1
arenas.put("Arena1", new ArrayList<String>());
//add a player
arenas.get("Arena1").add("player1");

Map听起来你需要一个多维数组{{Areana1},{Arean2}…}你有很多选择。二维阵列是一个明显的阵列。或者你可以有一系列的列表(这样不同的竞技场可以很容易地有不同的#/玩家)。或者一组地图(这样你就可以很容易地按玩家姓名搜索列表)。或者包含竞技场列表的地图。等等,太好了,这正是我需要的。这会帮我省去很多麻烦。谢谢,这就是为什么史密斯42(和其他人)建议列出一份清单的原因。下面是一个关于Java集合的好教程: