我有一个场景,我需要存储数据层次列表地图的地图在内存中处理。而且,目前我米思维来实现数据结构更好的数据结构,以更快地读取列表地图的地图
Map<Integer, Map<String, Map<Integer, List<String> > > >
和混凝土类型,
HashMap<stdIdInt, HashMap<libraryNameStr, HashMap<topicIdInt, ArrayList<bookNameStr> > > >
正如我不需要维护任何特定的顺序,我M还想着更换List
与Set
(HashSet
)可能会提高性能。
尽管我已经尝试到现在,我也认为使用谷歌的'番石榴Multimap是一个可行的替代,但我不知道。
背景:我需要存储的每个学生的ID &他们的兴趣书名信息通过其主题类型将由库名称来进一步组织分类的细节。我需要根据库名&主题类型来处理数据&显示图书名称大多由学生ID和其他时间。一旦书名向用户显示,我需要从书名列表中删除该条目。
数据结构需要保持&以高速率处理数千个条目并且将保存数据较长时间。
请建议一种方法或其他数据结构以加快处理速度,并且请提供关于数据结构/集合类的类型及其使用组合的信息。
(请注意我上面描述的场景是不准确的情况,但我想我最好的抽象的数据层次结构的复杂性)
“高速率”和“长时间”是什么意思?对我来说,这一切听起来都像一个数据库。 – skaffman
@skaffman在高峰时间,请求将达到〜1000+ /秒,并且数据将保留一天左右,之后将在第二天发布新数据。是的,我试图在DB上做的东西,因为每次碰到数据库时都知道所有的数据只是用于处理,而不是永久存储。 – manikanta
这听起来像是不成熟的优化。我会采取@ Tomasz的建议来改进抽象,然后确定数据结构是否能够充分执行某些基准测试。如果没有,请确定太慢的部分并改进。 –