以下のようなコードがあり、特に (String file : files) の行で ConcurrentModificationException を取得しています。
繰り返しを行うときに「ファイル」に対して何も変更しないのに、なぜ例外が発生し、どのように回避すればよいのでしょうか? ご提案ありがとうございます。
int getTotalLength(final HashSet<String> files) {
int total = 0;
int len;
for (String file : files) {
len = getLength(file);
if (len != Long.MIN_VALUE) {
total += len;
}
}
return total;
}
int getLength(String file) {
int len = Long.MIN_VALUE;
if (file == null) {
return len;
}
File f = new File(file);
if (f.exists() && f.isFile()) {
len = f.length();
}
return size;
}