У меня есть код, как показано ниже, и я получаю ConcurrentModificationException, особенно в линии для (String файла: файлы)ConcurrentModificationException в HashSet
Я ничего для «файл» не изменяется при выполнении итерации, так почему исключение будет вызвано и как его избежать? Спасибо за любое предложение!
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;
}
У вас есть другие темы, которые могут быть изменены одновременно? –
да, это возможно, но я сделал окончательный вариант hashSet ... не помешает ли ему модифицироваться? –
ConcurrentModification находится на вашем HashSet, а не на вашем файле –