在我的应用程序中,我需要一个二维数组。如果我定义它修复,则可以正常工作,如下所示:

static final String arrGroupelements[] = {"India", "Australia", "England", "South Africa"};
    static final String arrChildelements[][] = { {"Sachin Tendulkar", "Raina", "Dhoni", "Yuvi" },
                                                 {"Ponting", "Adam Gilchrist", "Michael Clarke"},
                                                 {"Andrew Strauss", "kevin Peterson", "Nasser Hussain"},
                                                 {"Graeme Smith", "AB de villiers", "Jacques Kallis"} };


但是,在我的代码中,我有两个列表。首先是我可以得到的食谱名称列表。

LinkedList<String> recipeList = dbShoppingHandler.getAllRecipeNames();
        String arrGroupelements[] = new String[recipeList.size()];
        for(int i=0; i<recipeList.size(); i++) {
            arrGroupelements[i] = recipeList.get(i);
        }


我的第二个清单是成分清单。为了获得成分列表,我需要设置配方名称,然后才能获得列表。但是,我不知道如何将此列表作为第二维度。我的代码是这样的:

String arrChildelements[][] = new String[recipeList.size()][20];
        for(int i=0; i<recipeList.size(); i++) {
            LinkedList<String> ingredient = dbShoppingHandler.getIngredientsOfRecipeName(recipeList.get(i));
            for(int j=0; j<ingredient.size(); j++) {
                arrChildelements[i][j] = ingredient.get(j);
            }
        }


不好的是,我需要为第二维设置一个数字(在我的情况下为20)。如果我对包含5个项目的列表喜欢这样,我将拥有15个“”元素,而那些包含20个以上的项目,代码将忽略它们。

第一维是固定的,但我需要根据成分数量调整第二维。

任何建议表示赞赏。谢谢。

最佳答案

不假定您事先知道长度的最简单方法。

String[][] arrChildelements[] = new String[recipeList.size()][];
for(int i=0; i<recipeList.size(); i++) {
    List<String> ingredient = dbShoppingHandler.getIngredientsOfRecipeName(recipeList.get(i));
    arrChildelements[i] = ingredient.toArray(new String[0]);
}

关于java - Java,如何调整二维数组的第二维?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11824720/

10-12 13:35