Как разрешить ConcurrentModificationException при сжатии для LRUCache, который использует LinkedHashMap внутри себя ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Как разрешить ConcurrentModificationException при сжатии для LRUCache, который использует LinkedHashMap внутри себя

Сообщение Anonymous »

Моя задача — уменьшить размер LRUCache, для которого я написал код ниже.

Код: Выделить всё

protected void shrinkSize() {
Iterator iter = fetch iterator
while (iter.hasNext()) {
if (size() > maxSize)
iter.remove();
else
break;
}
}
Здесь, в iter.remove(), я сталкиваюсь с ConcurrentModificationException, поскольку вызовы get для кэша происходят параллельно, что изменяет структуру LRUcache.
есть ли способ решить проблему?


Подробнее здесь: https://stackoverflow.com/questions/790 ... which-uses

Вернуться в «JAVA»