使用变量名创建Java数组

时间:2013-01-04 22:55:02

标签: java arrays multidimensional-array

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

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

我需要它来创建名为Arenas的数组,并且在每个竞技场内都有一个数组,我可以存储玩家名称,所以我知道谁在哪个竞技场。我希望你明白我的意思。我会把它以表格形式给你:

Arenas{
    Arena1{
        "Player1"
    }
    Arena2{

    }
    Arena3{

    }

} 

我希望你明白,我希望你能帮助我。我知道你们很好

4 个答案:

答案 0 :(得分:2)

您所追求的编程概念称为Associative Array,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");

答案 1 :(得分:1)

Map<Arena, Set<Player>>应该很好地完成这个伎俩。鉴于竞技场,它会给你一组玩家。

答案 2 :(得分:1)

我会制作Map<String, List<String>>

key是竞技场的名称,列表中是玩家的名字。

答案 3 :(得分:0)

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

class Arena {
  Set<Player> players = HashSet<Player>();
}

如果您需要按名称访问它们,请将它们存储在HashMap<String, Arena>内;如果随机访问足够,则将其存储在ArrayList<Arena>