У меня есть хэш-таблица, которая находится под интенсивным движением. Я хочу добавить механизм тайм-аута в hashtable, удалить слишком старые записи. Мои проблемы: - Он должен быть легким - Устранение операции не имеет критического момента. Я имею в виду (значение тайм-аута составляет 1 час) операция удаления может быть выполнена через 1 час или 1 час 15 минут. Нет проблем.Механизм ожидания для Hashtable
Мое мнение, создать большой массив (как кольцевой буфер), которые хранят поместить время и хеш ключа, При добавлении в хэш-таблицу, используя индекс массива найти следующий слот на массиве поместить время, если слот массива пусты , введите время вставки и клавишу HT, , если слот массива не пуст, сравните время вставки для таймаута.
Если тайм-аут произошел, удалите из Hashtable (если не удалили еще) Не задержите время ожидания, инкрементируйте индекс, чтобы найти пустой слот или слот массива с таймаутом. При удалении из хеш-таблицы на большом массиве нет операции.
Вскоре для каждой операции добавления в Hashtable может удаляться 1 элемент с тайм-аутом из хеш-таблицы или ничего не делать.
Какое у вас более элегантное и легкое решение?
Спасибо за помогает,
Я планирую добавить временную метку к значению Hashmap и проверить тайм-аут в функции removeEldestEntry.Контроль тайм-аута также просто для проверки% 10 вставки (не для всех). Это дает мне лучшую производительность. Думаю, это лучше для меня :) Спасибо за помощь. –