Я пытаюсь получить результаты из двух для каждого цикла - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь получить данные из двух циклов 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 ]

1 голос
/ 01 ноября 2019

Используйте System.out.print вместо System.out.println внутри циклов, чтобы избежать печати новых строк. Вы захотите добавить пробелы после каждого элемента, чтобы они правильно располагались в каждой строке, и вам потребуется пустой вызов System.out.println(); после каждого цикла, чтобы два цикла печатались в отдельных строках.

0 голосов
/ 01 ноября 2019

for(int i = 0, i< els.size()-1; i+=2){ System.out.println(els.get(i) + " : " + els.get(i + 1)); } Можете увидеть, что вы ожидаете выше? Хотя я думаю, что лучше использовать другую структуру данных, такую ​​как 2D-массив / HashMap, в зависимости от вашего варианта использования.

0 голосов
/ 01 ноября 2019

Предполагая, что оба элемента имеют одинаковый размер, проверьте следующий код:

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

Также предполагается, что элементы реализуют метод size ().

Обратите внимание, что если элементыне одного размера / длины, тогда вам следует проверить наличие нулевых указателей и т. д.

0 голосов
/ 01 ноября 2019

Вы можете выполнить цикл, используя значение индекса. Я предполагаю, что оба списка / массива имеют одинаковое количество элементов для печати, как они ожидали.

Пример кода:

//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));                
}
...