Java For循环多个列表同时

时间:2015-03-13 11:22:45

标签: java android

如果由我决定,我会用这样的方式循环Java for循环:

for (String s1, s2, s3 : arrayOfString1, arrayOfString2, arrayOfString3)
  {
    System.out.println("arrayOfString1" + s1);
    System.out.println("arrayOfString2" + s2);
    System.out.println("arrayOfString3" + s3);
  }

可悲的是,这不取决于我,我将如何循环使用多个列表的for语句?

2 个答案:

答案 0 :(得分:4)

我猜你让所有数组的长度都相同。 使用索引的解决方案是:

for (int i=0;i<arrayOfString1.length();++i) {
    System.out.println("arrayOfString1" + arrayOfString1.get(i));
    System.out.println("arrayOfString2" + arrayOfString2.get(i));
    System.out.println("arrayOfString3" + arrayOfString3.get(i));
}

如果你想使用迭代器,请按以下步骤操作:(我只打印两个数组。)

for(Iterator<int> i1=arr1.iterator(),i2=arr2.iterator();i1.hasNext();){
    int val1= i1.next();
    int val2= i2.next();
}

答案 1 :(得分:1)

尝试使用不同大小的列表:

int len = arrayOfString1.size();
len = Math.max(len, arrayOfString2.size());
len = Math.max(len, arrayOfString3.size());
for (int i = 0; i < len; i++) {
    if (i < arrayOfString1.size()) System.out.println("arrayOfString1" + arrayOfString1.get(i));
    if (i < arrayOfString2.size()) System.out.println("arrayOfString2" + arrayOfString2.get(i));
    if (i < arrayOfString3.size()) System.out.println("arrayOfString3" + arrayOfString3.get(i));
}

如果您使用了数组,而不是列表:

int len = arrayOfString1.length;
len = Math.max(len, arrayOfString2.length);
len = Math.max(len, arrayOfString3.length);
for (int i = 0; i < len; i++) {
    if (i < arrayOfString1.length) System.out.println("arrayOfString1" + arrayOfString1[i]);
    if (i < arrayOfString2.length) System.out.println("arrayOfString2" + arrayOfString2[i]);
    if (i < arrayOfString3.length) System.out.println("arrayOfString3" + arrayOfString3[i]);
}