] Уменьшение LinkedHashMap в Java [

] [

] Как можно уменьшить [] LinkedHashMap []? Я переопределил метод [] removeEldestEntry [], но этот метод вызывается только один раз, когда вставляется новое значение. Таким образом, нет никаких изменений в уменьшении карты таким образом. [

] [

] [] LinkedHashMap [] дает мне только обычный [] итератор [] и не имеет никаких [] removeLast [] или [] listIterator [], так как же найти последние, скажем, 1000 записей и удалить их? [

] [

] Единственный способ, который я могу придумать, - это перебирать все это целиком. Но это может занять много времени ... [

] [

] Создание новой карты каждый раз, когда я хочу удалить только несколько элементов, также разрушит память. [

] [

] Возможно, удалите первые значения [] Iterator [], а затем снова вставьте их, когда [] maxSize [] был уменьшен в методе [] removeEldestEntry []. Тогда при повторной вставке будут удалены самые старые значения. Это очень уродливый код ... Есть идеи получше? [

] [

] РЕДАКТИРОВАТЬ: Извините, порядок итераций от самого старого к младшему. Так что это просто [

]
7
задан Franz Kafka 30 August 2011 в 22:06
поделиться