いいえ、メソッドを使用する場合を除き、反復処理中にリストを変更しないでくださいIterator.remove
。他のことは別として、このコードが例外をスローしなかったとしても、persList
空でない限り永遠に続きます...反復する新しい人が常にいます!
基本的に、追加するアイテムを集めて新しいリストを作成addAll
し、最後に使用する必要があります。
ArrayList<Persons> persList = new ArrayList<Persons>();
// Populate the list, presumably
List<Persons> extraPeople = new ArrayList<Persons>();
for(Persons p : persList){
// Note: there's no point in creating a new object only to ignore it...
Persons pers = service.getPersons(id);
p.setAddress(pers.getAddress());
extraPeople.add(pers);
}
persList.addAll(extraPeople);
このコードは、繰り返しごとに同じ値を使用してフェッチしているため、私の見解ではまだあまり意味がありませんid
...これが実際のコードではなく例であることを願っています。
また、クラスの各インスタンスがPersons
1 人であることを意図している場合は、それを と呼ぶ方がよいことに注意してくださいPerson
。