arraylistの項目を置き換える際に問題があります。私は魂を探して、それがlistIteratorによって実行されていることを発見しました。だから私はそれを実装したいと思っていましたが、どういうわけかiteratorの "set"メソッドは利用できません。どうして?私の春のmvcアプリケーションでは、全体が@Repository
で起こっています。ArrayListの項目をlistIteratorに置き換える - listIterator.set()を解決できません
private List<Car> listOfCars = new ArrayList<Car>();
listOfCars.add(...);
listOfCars.add(...);
listOfCars.add(...);
public void update(Car car) {
Iterator<Car> listIterator = listOfCars.listIterator();
while (listIterator.hasNext()) {
Car c = listIterator.next();
if(c.equals(car)){
listIterator.set(car);
}
}
プログラムがlistIterator.set()
を解決することはできません - これはNTO可能です。あなたがListIterator
の方法を使用するつもりなら
これは欠けていたものです。コンピュータの前で長時間過ごした後は、明白なことを見落とすのは簡単です。しかし、今私は 'ConcurrentModificationException'を取得します。私はイテレータを使ってこのような問題が発生するのを防ぐと思った。 – bartuomiei
@bartuomieiなぜあなたはその例外を持っているのか分かりません。 ArrayListを変更するスレッドが複数ある可能性はありますか?とにかく、ループを 'int index = listOfCards.indexOf(car); if(index> = 0){listOfCars.set(index、car);}' – Eran