繁体   English   中英

在遍历不同数组时遇到麻烦

[英]Having trouble working through an iteration of different arrays

我正在使用for循环遍历所有具有相同名称的数组列表,但期望最后使用不同的数字。 例如child1,child2等。虽然我尝试了childi,但我是变量,但我可以遍历所有数组。 但是,那没有用。 我已经将我从一个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++

您不能通过动态计算的名称引用变量。 在这种情况下,最好的选择是创建一个数组或其他容器来保存子数组。 例如,

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");
  }   
}

您真的无法以这种方式在代码中设置数组的名称。 您将混合编译时选项和运行时选项混在一起。 在您的程序实际运行时,变量的名称不仅是固定的,而且是无关紧要的-Java实际上只能保留它进行调试(并且混淆可以更改名称而不会导致程序失败)。

为了实现最终目标,您必须将数组放入另一个结构中,也许是另一个数组,如下所示:

for (int p; p < people.length(); p++) {
   String[] child = people[p];
   ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM