我正在使用for循环遍历一个阵列列表,这些阵列都具有相同的名称,最后期望不同的数字。例如child1,child2等我虽然我尝试了childi,其中i是我能够遍历所有数组的变量。但是,这没有用。我已经将int从int更改为字符串并在最后连接它,但后来我得到了一个在数组中不同的新变量。任何想法。
int i=0;
String []child=childi;//so child would refer to child0 then child1
for (int j = 0; j < child.length(); j++) {
Map<String, String> curChildMap = new HashMap<String, String>();
children.add(curChildMap);
curChildMap.put(NAME, child[j]);
curChildMap.put(IS_EVEN, (j % 2 == 0) ? "This child is even" : "This child is odd");
}
i++
答案 0 :(得分:2)
您无法通过动态计算的名称引用变量。在这种情况下,最好的办法是创建一个数组或其他容器来容纳子数组。例如,
String[][] children = new String[][] { child0, child1, child2, child3, /* ... */ };
for (int i = 0; i < children.length; i++) {
String[] child = children[i];
for (int j = 0; j < child.length(); j++) {
Map<String, String> curChildMap = new HashMap<String, String>();
children.add(curChildMap);
curChildMap.put(NAME, child[j]);
curChildMap.put(IS_EVEN, (j % 2 == 0) ? "This child is even" : "This child is odd");
}
}
答案 1 :(得分:1)
您真的无法在代码中以这种方式设置数组的名称。您可以将编译时和运行时选项混合在一起。当你的程序实际运行时,变量的名称不仅是固定的,而且是无关紧要的 - Java实际上只保留它用于调试(并且混淆可以改变名称而不会导致程序失败)。'
要实现您的最终目标,您必须将数组放入另一个结构,也许是另一个数组,如下所示:
for (int p; p < people.length(); p++) {
String[] child = people[p];
...
}