Большое количество констант в Java - PullRequest
15 голосов
/ 04 мая 2010

Мне нужно включить около 1 МБ данных в приложение Java для очень быстрого и легкого доступа к остальной части исходного кода. Мой основной опыт - не Java, поэтому моей первоначальной идеей было преобразование данных непосредственно в исходный код Java, определение 1MByte константных массивов, классов (вместо структуры C ++) и т. Д., Что-то вроде этого:

public final/immutable/const MyClass MyList[] = { 
  { 23012, 22, "Hamburger"} , 
  { 28375, 123, "Kieler"}
};

Однако, похоже, что Java не поддерживает такие конструкции. Это правильно? Если да, то как лучше всего решить эту проблему?

ПРИМЕЧАНИЕ. Данные состоят из 2 таблиц, каждая из которых содержит около 50000 записей данных, которые необходимо искать различными способами. Это может потребовать некоторых индексов позже, с таким большим количеством записей, возможно, 1 миллион записей, сохраненных таким образом. Я ожидаю, что приложение запустится очень быстро, без перебора этих записей.

Ответы [ 11 ]

0 голосов
/ 04 мая 2010

Вы также можете объявить статический класс (или набор статических классов), выставляя требуемые значения как методы . В конце концов, вы хотите, чтобы ваш код мог найти значение для данного имени, и не хотите, чтобы это значение изменилось.

Итак: location = MyLibOfConstants.returnHamburgerLocation (). Почтовый индекс

И вы можете хранить эти вещи в хеш-таблице с ленинициализацией, если вы считаете, что вычисление их на лету будет пустой тратой времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...