Я должен хранить информацию для объектов типа «Персона» в структуре данных.Информация может быть, например, простым целочисленным значением.Целочисленные значения будут часто меняться, а также могут меняться лица, для которых хранится информация.Важны две вещи:
- Должна быть возможность быстрого поиска, если есть информация, хранящаяся для конкретного человека.
- У меня будет огромное количество таких структур данныхтак что память важна.
Есть два разных способа, о которых я могу думать.Прежде всего, я мог бы создать собственный тип данных, который будет содержать как ссылку на человека, так и целое число в качестве полей.Проблема: каждый раз, когда я хочу узнать, есть ли информация для конкретного человека, мне нужно будет просмотреть все объекты и вызвать метод getter для этого человека.Во-вторых, я мог бы использовать HashMap с Person в качестве ключа и Integer в качестве значения.С объектно-ориентированной точки зрения это может быть не так элегантно, как при первой возможности.Кроме того, что еще хуже, HashMaps, по-видимому, потребляют больше памяти, чем простые коллекции (кроме того, мне они очень нравятся, кажется, что часто приходится связывать два разных объекта).Если каждый из них берет, например, килобайт, это будет для меня уже проблематично (мне может понадобиться описанная структура данных около миллиона раз).
Какой вариант вы бы предложили?Или вы можете придумать третью, лучшую возможность?
Спасибо и всего наилучшего
Патрик