Я ищу способ хранения отображения string- > int. HashMap - это, конечно, самое очевидное решение, но поскольку я ограничена памятью и вам нужно хранить 2 миллиона пар, 7 символов, мне нужно что-то полезное для памяти, скорость поиска является вторичным параметром.
В настоящее время я иду по строке:
List<Tuple<String, int>> list = new ArrayList<Tuple<String, int>>();
list.add(...); // load from file
Collections.sort(list);
а затем для извлечения:
Collections.binarySearch(list, key); // log(n), acceptable
Должен ли я пойти для пользовательского дерева (каждый node один символ, каждый лист с результатом), или есть ли существующая коллекция, которая подходит для этого красиво? Строки практически последовательны (британские почтовые индексы, они мало чем отличаются), поэтому я жду хорошей экономии памяти здесь.