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