Я работаю с большим набором (5-20 миллионов) клавиш String (средняя длина 10 символов), которые мне нужно хранить в структуре данных в памяти, которая поддерживает следующую операцию в постоянное время или почти постоянное время:/p >
// Returns true if the input is present in the container, false otherwise
public boolean contains(String input)
Java Hashmap оказывается более чем удовлетворительным с точки зрения пропускной способности, но занимает много памяти. Я ищу решение, которое эффективно с точки зрения памяти и по-прежнему поддерживает пропускную способность, которая является достойной (сопоставимой или почти такой же, как хэширование).
Мне не нужны времена вставки/удаления. В моем приложении я буду выполнять только вставки (только во время запуска) и впоследствии будет запрашивать структуру данных, используя метод contains
для срока службы приложения.
Я прочитал, что структура данных HAT-Trie ближе всего для моих нужд. Мне интересно, есть ли библиотека, которая имеет реализацию.
Другие предложения с указателями на реализацию приветствуются.
Спасибо.