2015-03-13 73 views
0

如果這是對我,我會循環一個Java的這種方式循環與多個列表:的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); 
    } 

可悲的是,這不是對我,我會怎麼走關於使用多個列表循環語句?

+0

在一個線程中單獨執行,還是有三個線程? – xcoder 2015-03-13 11:24:20

+0

是相同大小的列表? – Fred 2015-03-13 11:31:17

+0

@xcoder我需要同時執行它,因爲所有3個結果稍後會在同一個「for循環」中傳遞,還要注意每個s(number)都是一個字符串列表,因此循環會將每個字符串放在一個新行中BUT 3列表中的每個字符串都在同一行中。 – TwoStarII 2015-03-13 11:34:14

回答

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]); 
} 
+0

謝謝你,你的第二種方法工作!我正在使用一個數組。感謝所有回覆的人。 – TwoStarII 2015-03-13 13:16:08

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(); 
} 
+0

我去了第一個選項,但遇到了這個問題:無法調用數組類型String []上的length(),讓我快速轉換它,並讓你知道 – TwoStarII 2015-03-13 11:42:39

+0

將String []轉換爲String後返回錯誤「The method get(int)is undefined for the String String」,同時我是一個int,get(i)將返回一個int,我想返回字符串數組不是一個整數或它們的長度 – TwoStarII 2015-03-13 12:00:01

+0

如果它是一個數組,使用'arr.length'和'arr [i]' – Turtle 2015-03-13 12:02:19