繁体   English   中英

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

[英]Which type of array should I use

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

它将包含以下信息:

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

非常感谢您的帮助,我是Java的新手,并且无法在网站上看到此列表,如果是的话,请指向我:)

那是从球员到竞技场的映射。

我将创建一个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>();

这可以使用地图来实现。 例如,

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

map.get( “名称”); //返回“演示”,对您的示例更准确的是声明:

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

只有一种类型的数组。 在数组中,放入索引,然后取出相应的项。 如果要使用数组表示此信息,我将创建一个包含可以在其中设置Player和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]; 例如

我不太了解,但是我假设您想使用一个哈希表或哈希表(如果使用线程,请使用哈希表)。

HashMap中

这样,您可以使用一些自定义类扩展PlayerName,Stack,Overflow,Word,Press,并将其与地图一起使用: HashMap <CustomClass, Arena>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM