在java中创建一个数组数组

时间:2011-06-06 19:56:38

标签: java algorithm

我需要在java中使用Strings创建一个数组数组...

例如,我读了一个文件,其中包含每个列的运动和球员名称..

最终的目标是填充分组(体育)

中的列表
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新手...谢谢

4 个答案:

答案 0 :(得分:1)

Bonjour Maxime,

您最好将数据存储在hasmap中。这允许将一些值与另一个值相关联。 例如,您可以定义一个将运动与运动员列表相关联的地图,如下所示:

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

或者如果你没有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

让所有人都参加一项运动:

列表listPlayer = mapSportToPlayer.get(sport);

并在控制台上打印出来

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

然后在类播放器中覆盖toString以提供对象的明文输出。

此致,Stéphane

答案 1 :(得分:0)

地图是一种更好的存储方式。但是如果你想要一个数组,你可以创建一个二维数组或一个数组数组,例如

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

因此每个Array都有两个值。在位置0是运动,位置1是运动员名称

或者你可以断言,在位置0,它是曲棍球,位置1是棒球,即

String[][] playersOfSports = {{"Mario Lemieux","Wayne Gretsky"},
    },{"Barry Bonds", "A Rod"}}

答案 2 :(得分:0)

String[][] playerSport = new String[7][2];

如果行数未修复,请使用ArrayList

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

答案 3 :(得分:0)

或者如果使用数组是问题/ HW中的约束,则可以创建一个Object数组并在其中存储另一个数组,因为Object类位于所有类的ontop上,然后随时将对象转换为数组你好吗