2013-01-25 87 views
0

我有兩個列表X,Y。同時迭代兩個具有不同大小的列表

哪些是字符串列表。

有兩種列表可能有不同的大小。

如果兩個列表是2個相同尺寸的話,我可以procedd像

for (int i =0; i<anyList.size(); i++){ 
    system.out.printLn(X(i) +" "+Y(i)); 
    } 

example result : 

stringX1 stringY1 
stringX2 stringY2 

中怎樣處理具有不同尺寸的環

例子的結果應該是這樣的

示例結果:

stringX1 stringY1 
    stringX2 stringY2 
    stringX3 
    stringX4 

回答

0
for (int i =0; i<max(X.size(),Y.size()); i++){ 
    if(i<X.size() && i<Y.size()) { 
    print(X.get(i) + " " + Y.get(i)); 
    } else if(i<Y.size()) { 
    print(Y.get(i)); 
    } else { 
    print(X.get(i)); 
    } 
} 

編程的一個最大(INT,INT)和打印(String)方法不應該是困難的。

7
Iterator<String> x_it = x.iterator(); 
Iterator<String> y_it = y.iterator(); 
while(x_it.hasNext() && y_it.hasNext()){ 
    System.out.println(x.next() + " " + y.next()) 
} 
while(x_it.hasNext()){ 
    System.out.println(x.next()); 
} 

while(y_it.hasNext()){ 
    System.out.println(y.next()); 
} 
0
public static void main(String[] args) { 
    List<String> l1 = new ArrayList<String>(); 
    l1.add("Pif"); 
    l1.add("Paf"); 
    l1.add("Pouf"); 
    List<String> l2 = new ArrayList<String>(); 
    l2.add("Argh!"); 
    l2.add("Aie!"); 

    Iterator<String> it1 = l1.iterator(); 
    Iterator<String> it2 = l2.iterator(); 

    String s1, s2; 
    while (it1.hasNext() || it2.hasNext()) { 
     if (it1.hasNext()) { 
      s1 = it1.next(); 
      System.out.print(s1 + " - "); 
     } 
     if (it2.hasNext()) { 
      s2 = it2.next(); 
      System.out.print(s2); 
     } 
     System.out.println(); 
    } 


} 

其中產量:

Pif - Argh! 
Paf - Aie! 
Pouf - 
0
List<String> shorter = Arrays.asList("red", "blue"); 
List<String> longer = Arrays.asList("one", "two", "three", "four"); 

int size = Math.max(shorter.size(), longer.size()); 

StringBuilder sb = new StringBuilder(); 
for (int i = 0; i < size; i++) { 

    if (shorter.size() > i) { 
    sb.append(shorter.get(i)).append('\t'); 
    } else { 
    sb.append("\t\t"); 
    } 

    if (longer.size() > i) { 
    sb.append(longer.get(i)); 
    } 

    sb.append('\n'); 
} 

System.out.println(sb.toString()); 

輸出

red one 
blue two 
     three 
     four 
0
int size = x.size() > y.size ? x.size() : y.size(); 
for (int i =0; i< size ; i++) 
{ 
    System.out.printLn((x.size() > i + 1 ? X(i) : "") +" "+(y.size() > i + 1 ? Y(i) : "")); 
    } 
1
if(arr1.size()>=arr2.size()) 
    max = arr1.size(); 
else 
    max = arr2.size(); 

for(int i=0;i<max;i++) 
{ 
    if(arr1.size() >= i+1) 
     System.out.println(arr1.get(i)); 
    if(arr2.size() >= i+1) 
    System.out.println(arr2.get(i)); 
} 
相關問題