Вот моя ситуация. Я использую два java.util.HashMap для хранения некоторых часто используемых данных в веб-приложении Java, запущенном на Tomcat. Я знаю точное количество записей в каждом Hashmap. Ключи будут строки и целые соответственно.
Мой вопрос: как лучше всего установить начальную емкость и коэффициент загрузки?
Должен ли я установить емкость, равную количеству элементов, которые она будет иметь, и нагрузочную способность 1,0? Я бы хотел абсолютно лучшую производительность, не используя слишком много памяти. Боюсь, однако, что таблица не будет заполнена оптимально. С таблицей точного необходимого размера, не будет ли столкновения клавиш, что приведет к (обычно короткому) сканированию, чтобы найти правильный элемент?
Предполагая (и это натянуто), что хеш-функция является простым модом 5 целочисленных клавиш, не означает ли это, что клавиши 5, 10, 15 попадут в одно и то же ведро, а затем вызовут поиск для заполнения ведра рядом с ними? Увеличит ли начальная емкость производительность?
Кроме того, если для этого есть лучшая структура данных, чем хэш-карта, я полностью открыт для этого.