如果由我决定,我会用这样的方式循环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语句?
答案 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]);
}