我正在尝试从每个循环的两个检索结果

时间:2019-11-01 15:26:12

标签: java for-loop

我正在尝试从两个for-each循环中检索数据。我期望它在同一行或同一行上获取数据。

int i=0,j=0;

System.out.println("First Elements out---");
for(Element ele1:els){
    System.out.println(els.get(i));
    i++;
}

System.out.println("Second Elements out---");
for(Element ele2:els){
    System.out.println(els.get(j));
    j++;
}

实际结果:

First Elements out---
Element_1_1
Element_1_2

Second Elements out---
Element_2_1
Element_2_2

预期结果:

Element_1_1 : Element_2_1 
Element_1_2 : Element_2_2

4 个答案:

答案 0 :(得分:1)

在循环内使用System.out.print而不是System.out.println以避免打印换行符。您将需要在每个项目之后添加空格,以便在每行上适当地隔开它们,并且您将希望在每个循环之后进行空的System.out.println();调用,以便两个循环在单独的行上打印。

答案 1 :(得分:0)

您可以循环使用索引值。我假设列表/数组都具有相同数量的元素供您以预期方式打印。

示例代码

//you need to get the length and you can directly use this in the loop
int number_of_elements = els_one.length(); 
for(int i=0;i<number_of_elements;i++){
    System.out.println(els_one.get(i)+" : "+els_two.get(i));                
}

答案 2 :(得分:0)

假设两个元素的大小相同,请检查以下代码:

for (int i=0; i<els_1.size(); i++){
    System.out.println(els_1.get(i) + " : " + els_2.get(i));
}

还假定Elements实现了size()方法。

请注意,如果元素的大小/长度不同,则应检查空指针等。

答案 3 :(得分:0)

for(int i = 0, i< els.size()-1; i+=2){ System.out.println(els.get(i) + " : " + els.get(i + 1)); } 可以看到上面是否是您所期望的吗?尽管我认为根据您的使用情况,最好使用不同的数据结构,例如2D数组/ HashMap。