2013-01-04 115 views
-1

我提出了我的世界服務器插件,我需要一種方法來存儲球員在賽場上他們是在一個數組名例如:創建Java數組與可變

插件加載所有創建領域:Arena1Arena2Arena3

,我需要它來創建和陣列稱爲Arenas裏面還一個數組的每個領域,我可以儲存玩家的名字,所以我知道是誰在舞臺上。我希望你明白我的意思。我會把它放在一個表格格式爲你:

Arenas{ 
    Arena1{ 
     "Player1" 
    } 
    Arena2{ 

    } 
    Arena3{ 

    } 

} 

我希望你能理解,我希望你能幫助我。我知道你們很好

+1

聽起來像你需要一個多維數組{{Areana1},{Arean2} ...} – PermGenError

+0

你有很多的選擇。二維數組是一個明顯的例子。或者你可以有一個列表陣列(所以不同的舞臺可以很容易地擁有不同的#/球員)。或者是一個地圖陣列(這樣你就可以通過玩家的名字輕鬆搜索列表)。或者包含您的Arenas列表的地圖。等等。 – paulsm4

回答

1

A Map<Arena, Set<Player>>應該很好地做的伎倆。給定一個競技場,它會給你一組球員。

1

我會做一個Map<String, List<String>>

關鍵是競技場的名稱,在列表中是球員的名字。

+0

是的,這就是爲什麼MrSmith42(和其他人)建議列表。下面是關於Java集合的一個很好的教程:http://www.learn-java-tutorial.com/Collections.cfm#.UOdf0qxz3Kc – paulsm4

0

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

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

他們然後保存的HashMap<String, Arena>裏面,如果你需要通過名稱或ArrayList<Arena>訪問他們,如果隨機存取就足夠了。

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"); 
+0

完美,這正是我需要的。這將爲我節省很多問題。謝謝 – user1819037