Я хочу создать структуру данных в своем приложении для хранения многих записей, индексированных ключами. Каждая запись имеет несколько параметров для извлечения и обновления.
Не могли бы вы предложить мне, какая структура наиболее эффективна среди следующих ниже:
Спасибо заранее.
Если это простое отношение key- > value, лучше всего использовать хэш-таблицу или даже базу данных nosql. Тем не менее, похоже, что вы храните ключ → (значение, значение, значение, значение), в этом случае я бы использовал базу данных sql, хотя это не относится к реляционным. Ключ будет вашим основным ключом, он не должен быть INTEGER
, это может быть любой тип данных. Вы должны убедиться, что ваш ключевой столбец не менее UNIQUE
, хотя установка его в качестве основного ключа сделает это автоматически или вы можете столкнуться с проблемами.
Если это больше древовидная структура, вы можете не использовать базу данных sql. Если бы вы могли привести пример данных, которые вы хотите сохранить, и его отношения, я могу дать вам лучший ответ. С информацией, которую я имею, я бы использовал sqlite.
Если данные не соответствуют памяти, наиболее распространенным подходом является использование SQLite. Конечно, есть и другие (более экзотические) решения, такие как использование другой базы данных (например, база данных H2).
Если данные вписываются в память, используйте хеш-таблицу. java.util.Hashtable и java.util.HashMap в основном то же самое, но HashMap немного быстрее (потому что он не синхронизирован). В этом случае вам все равно может потребоваться сохранить данные, но это может быть медленным, если вы хотите сохранить/прочитать все за один шаг.