簡體   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