Это зависит от коэффициента загрузки ("процент полная" точка, где таблица увеличит свой размер и перераспределит ее элементы). Если Вы знаете, что у Вас есть точно 1 000 записей, и то число никогда не будет изменяться, можно просто установить коэффициент загрузки на 1,0 и начальный размер к 1 000 для максимальной производительности. Если бы Вы не были уверены в точном размере, то Вы могли бы оставить коэффициент загрузки в его значении по умолчанию 0,75 и установить Ваш начальный размер на 1334 (ожидал size/LF) для действительно хорошей производительности, по стоимости дополнительной памяти.
Можно использовать следующего конструктора для установки коэффициента загрузки:
Hashtable(int initialCapacity, float loadFactor)
Дважды хорошо.
У Вас нет большого набора ключей. Не беспокойтесь о трудных дискуссиях о Вашей реализации HashTable и идите на 2000.
Существует некоторое обсуждение этих факторов в документации для Hashtable
Необходимо включить в хеш-функцию также.
одно эмпирическое правило предлагает, делают размер таблицы о двойном, так, чтобы была комната, чтобы расшириться и надо надеяться сохранить количество коллизий маленьким.
Другое эмпирическое правило состоит в том, чтобы предположить, что Вы делаете своего рода связанное с модулем хеширование, затем вокруг Вашего размера таблицы до следующего самого большого простого числа, и используете то простое число в качестве значения по модулю.
Какие вещи Вы хешируете? Больше детали должно генерировать лучший совет.
Позвольте ему вырасти. С этим размером автоматическая обработка прекрасна. Кроме этого, 2 x размера + 1 являются простой формулой. Простые числа также довольно хороши, но как только Ваш набор данных достигает определенного размера, реализация хеша могла бы решить перехешировать и вырастить таблицу.
Ваши ключи управляют эффективностью и надо надеяться достаточно отличны.
Нижняя строка: Задайте вопрос размера, когда у Вас будут проблемы, такие как размер или медленная производительность кроме этого:Не волнуйся!
Я хотел бы повторить то, что https://stackoverflow.com/users/33229/wwwflickrcomphotosrene-germany сказал выше. 1000 не походит на очень большой хеш мне. Я использовал много хеш-таблиц о том размере в Java, не видя очень в способе проблем производительности. И я почти никогда не слоняюсь без дела с размером или коэффициентом загрузки.
Если Вы выполнили профилировщика на своем коде и решили, что хеш-таблица является Вашей проблемой, то любой ценой начинают настраивать. Иначе я не предположил бы, что у Вас есть проблема, пока Вы не уверены.
В конце концов, в большей части кода, проблема производительности не состоит в том, где Вы думаете, что это. Я пытаюсь не ожидать.