Вы используете ненужные вложенные l oop. Если человек с индексом 1 владеет домом с индексом 1, personList
и houseList
имеют одинаковый размер, вы можете сделать это, используя один для l oop, или вы можете использовать IntStream
для итерации по требуемый диапазон (0, personList.size())
:
IntStream.range(0, personList.size()).forEach(i -> {
personList.get(i).setAddress(houseList.get(i).getAddress());
personList.get(i).setSqFootage(houseList.get(i).getSqFootage());
});
С вложенным для l oop в вопросе:
e.g. 3 person - 3 houses
person house
0 0 // if( i == j) -> true, assign house(0) to person(0)
0 1 // unnecessary step
0 2 // ...
1 0 // ...
1 1 // if( i == j) -> true, assign house(1) to person(1)
1 2 // unnecessary step
2 0 // ...
2 1 // ...
2 2 // if( i == j) -> true, assign house(2) to person(2)
Таким образом, вы l oop 9 раз, но назначаете дом для человек всего 3 раза.