Это зависит, но если ваша модель данных достаточно проста, чтобы вписаться в карту, и вам не нужно сохранять данные между запусками вашей программы, то база данных в памяти, скорее всего, будет избыточной. Базы данных предназначены для более сложных моделей данных, безопасного параллельного доступа и обновления с использованием транзакций, сложных запросов, ограничений и т. Д.
Если вы решите, что карта подходит, то вам следует тщательно выбрать нужный тип карты. Взгляните на полный спектр Карт, доступных в java.util.collections, а также внимательно посмотрите на Коллекции Google, которые расширяют возможности Java несколькими очень приятными способами. Также посмотрите на java.util.concurrent, у которого есть хороший ConcurrentHashMap, который позволит одновременно использовать вашу структуру данных несколькими потоками.
Обязательно подумайте, как вы строите свою Карту. Если вы используете HashMap, установка начальной емкости и коэффициента загрузки во время строительства может оказать некоторое влияние на производительность.
Еще одна вещь, которую нужно сделать здесь, это спрятать вашу реализацию за классом фасада, который вы пишете. Таким образом, если вы решите поменять подходы, это не повлияет на ваш клиентский код.