次の問題がある場合: 強化された for ループを使用しているリストがあります。リストから sth を削除するたびに、ConcurrentModificationException が発生します。この例外がスローされる理由はすでにわかっていますが、コードを変更して機能させる方法がわかりません。これは私のコードです:
for(Subject s : SerData.schedule)
{
//Checking of the class is already existing
for(Classes c : s.classes)
{
if(c.day == day &c.which_class == which_class)
{
int index = getclassesindex(s.classes, new Classes(day, which_class));
synchronized (s) {
s.classes.remove(index);
}
}
}
//More code....
}
私もこの実装を試しました。
for(Subject s : SerData.schedule)
{
//Checking of the class is already existing
Iterator<Classes> x = s.classes.iterator();
while(x.hasNext())
{
Classes c = x.next();
if(c.day == day &c.which_class == which_class)
{
int index = getclassesindex(s.classes, new Classes(day, which_class));
synchronized (s) {
s.classes.remove(index);
}
}
}
//More code....
}
どちらも機能していません...
一般的に使用される標準的なソリューションはありますか? (うまくいけば、それは明らかではありません:D)