2011-06-06 84 views
0

我需要創建一個Java中的字符串數組的數組的數組...創建數組在Java中

例如,我讀了包含每個列的運動,運動員name..like文件:

在這對在填入分組節列表的末尾(體育)

hockey,Wayne Gretsky 
hockey,Mario Lemieux 
baseball,Barry Bonds 
baseball,A Rod 

我需要創建[] []與此功能的目標是:

public static String[][] getSportItems(int sectionCount){ 
    String currentSection=""; 
    int cnt=0; 
    try{ 

     File file = new File(Environment.getExternalStorageDirectory() 
       + "/sports.csv"); 
     BufferedReader br = new BufferedReader(new FileReader(file)); 
     String strLine = ""; 
     while ((strLine = br.readLine()) != null) { 
      String[] data = strLine.split(";"); 
      if(cnt>0){ 

      } 
      cnt++; 
     } 
    }catch (IOException e) { 
     e.printStackTrace(); 
    } 

} 

我怎樣才能管理,爲每個包含與運動相關的運動員的運動創建一個陣列。

我在Java中是新...感謝

+0

你有一些我們可以使用的代碼嗎? – Marcelo 2011-06-06 20:00:20

+1

這是功課,不是嗎?請給它貼上標籤,然後發佈你的嘗試,並描述你所困擾的內容。 – Marcin 2011-06-06 20:01:04

+0

當元素數量未知時,最好使用'List'。 – mre 2011-06-06 20:01:08

回答

1

卓悅馬克西姆,

你應該更好地將數據存儲在hasmap中。這允許將某個值與另一個值相關聯。 例如,你可以定義一個地圖,一個運動,以這樣的球員名單相關聯:

Map<String, List<Player>> mapSportToPlayer = new Hashmap<String, List<Player>>(); 

,或者如果你沒有一個播放器類(但最好有一個):

Map<String, List<String>> mapSportToPlayer = new Hashmap<String, List<String>>(); 

,並把一名球員,做這樣的

public void addPlayerToSport(String sport, Player player) 
{ 
    List<Player> listPlayer = mapSportToPlayer.get(sport); 
    //first time we associate a player to this sport 
    if(listPlayer == null) 
    { 
     listPlayer = new ArrayList<Player>(); 
    }//if 
    listPlayer.add(player); 
}//met 

,並獲取與運動相關聯的所有的人:

List listPlayer = mapSportToPlayer.get(sport);

,並打印出來,在控制檯上

for(Player p : listPlayer) 
    System.out.println(p); 

,然後覆蓋的toString級的球員來提供你的對象的清晰的文本輸出。

問候,斯特凡

+0

MerciStéphane! – Maxime 2011-06-06 20:12:36

0

地圖是存儲的更好的方法。但是如果你想要一個數組,你可以創建一個二維數組或者一個數組的數組,例如

String[][] sportToPlayers = {{"hockey","Wayne Gretsky"}, 
{"hockey","Mario Lemieux"},{"baseball", "Barry Bonds"}}; 

所以每個數組都有兩個值。在位置0是運動和位置1是玩家的名字

或者您也可以斷言,在位置0它的曲棍球和1位是棒球即

String[][] playersOfSports = {{"Mario Lemieux","Wayne Gretsky"}, 
    },{"Barry Bonds", "A Rod"}} 
0
String[][] playerSport = new String[7][2]; 

如果行數不是固定的,使用ArrayList

List<String[]> listPlayerSport = new ArrayList<String[]>(); 
0

,或者如果使用陣列的是在該問題的約束/ HW可以在它自Object類是ontop的所有類的,然後澆鑄的對象作爲創建物體的陣列和存儲另一個數組數組,只要你想擁有它