我应该使用哪种类型的数组

时间:2014-03-04 20:31:30

标签: java arrays

我想创建一个包含玩家列表以及他们所在的竞技场的数组。我不知道哪种类型的阵列最适合。

它将保存这样的信息:

PlayerName : Arena
John : Arena1
Harry : Arena1
Dave : Arena2
Will : Arena2

非常感谢您的帮助,我是Java的新手,无法在网站上看到这个,如果是,请指向我这个方向:)

5 个答案:

答案 0 :(得分:5)

这是从玩家到竞技场的映射。

我会创建一个class Player和一个class Arena,因此您的数据结构将是:

Map<Player, Arena> playerToArena = new HashMap<Player, Arena>();

在这种情况下我不会使用数组,但是,如果你坚持,你可以写一些类似的东西:

class Pair { 
    Player player;
    Arena arena;
}

Pair[] array = new Pair[10];
// or
List<Pair> arrayList = new ArrayList<Pair>();

答案 1 :(得分:0)

这可以使用Map实现。如,

Map<String, String> map = new HashMap<String, String>();
map.put("name", "demo");
map.put("fname", "fdemo");
// etc

map.get( “名称”); //返回“demo” 对你的例子更准确的是声明:

List<HashMap<String, String>> data = new ArrayList<HashMap<String, String>>();
data.add(0, map);
data.get(0).get("name"); 

答案 2 :(得分:0)

只有一种类型的数组。在数组中,您放入一个索引,然后输出相应的项目。如果你想用一个数组来表示这个信息,我会创建一个包含你可以设置Player和Arena值的类的类,然后将每个对象存储在数组中。

答案 3 :(得分:0)

您可以创建一个包含playername和arena名称的容器类,并创建一个数组(或其他集合)

private static final class ArenaPlayerContainer {
    private final String playerName;
    private final String arenaName;

    public String getPlayerName() {
        return playerName;
    }

    public String getArenaName() {
        return arenaName;
    }

    private ArenaPlayerContainer(String playerName, String arenaName) {

        this.playerName = playerName;
        this.arenaName = arenaName;
    }
}

然后你就可以创建一个ArenaPlayerContainer[] arr = new ArenaPlayerContainer[10]; 例如

答案 4 :(得分:0)

我不太明白,但我假设你想要使用hashmap或hashtable(如果使用线程则使用hashtable)。

HashMap

通过这种方式,您可以使用某个自定义类扩展PlayerName,Stack,Overflow,Word,Press并将其与地图一起使用:HashMap <CustomClass, Arena>