У меня есть сценарий, в котором мне нужно хранить карту карты карты списка иерархии данных для обработки в памяти. И, в настоящее время я думаю реализовать структуру данных как
Map<Integer, Map<String, Map<Integer, List<String> > > >
и типы бетонов:
HashMap<stdIdInt, HashMap<libraryNameStr, HashMap<topicIdInt, ArrayList<bookNameStr> > > >
Поскольку мне не нужно поддерживать какой-либо конкретный порядок, я также думаю заменить List
на Set
(HashSet
), что потенциально может повысить производительность.
Хотя я пытался до сих пор, я также думаю, что использование Google 'Guava Multimap является жизнеспособной альтернативой, но я не уверен.
Справочная информация: Мне нужно хранить сведения о каждого студента id и их интересующие названия книг информация, классифицированная по их типу темы , которая будет в дальнейшем организована по именам библиотек . Мне нужно обрабатывать данные и отображать названия книг в основном по идентификатору студента, а в другое время - по имени библиотеки и типу темы. И как только имя книги показано пользователю, мне нужно удалить эту запись из списка Имена книг .
Структура данных должна хранить и обрабатывать тысячи записей с высокой скоростью и будет хранить данные в течение более длительного времени.
Пожалуйста, предложите подход или другую структуру данных для более быстрой обработки, а о типе структуры данных / класса сбора и их комбинации использования.
(обратите внимание, что сценарий, который я описал выше, не является точным случаем, но я изо всех сил пытался абстрагироваться от сложности иерархии данных)