В настоящее время я работаю над проблемой, связанной с программированием, в которой я пытаюсь создать массивную хэш-карту данных. Ключом для данных является пользовательская реализация CharSequence с малым объемом памяти, которая реализует hashCode () и equals (...), а значением является объект Integer.
Может быть миллионы записей в этой хеш-таблице, и мне удалось резко сократить использование памяти для значения, если Integer будет указателем в файле на данные, которые я хочу хэшировать, но проблема в том, что ключ может быть десятками байт (в среднем 25 байт) и то, что ключи должны храниться в памяти в стандартной реализации HashMap.
Мне нужна хэш-карта с небольшим объемом памяти, которая может распознать ключи на диске или, в качестве альтернативы, сохранить хешированное представление ключей. Если ключи сами по себе хешируются, меня будут беспокоить коллизии хешей.
В идеале я хотел бы иметь возможность хранить миллион записей на карте на 50 МБ пространства кучи (один байтовый массив из 25 байтов в ключе и объект Integer в части значения).
Есть ли у кого-нибудь опыт работы с Картами с файловой системой с малым объемом памяти, оптимизированными для уменьшения площади клавиш?
Спасибо
Chris