我有一个相当大的列表,其中包含一个类的许多实例,该类有许多属性(成员变量)。我的问题是找到一个可行的数据结构来存储这些实例,允许基于多个属性进行搜索,例如数据库搜索(即一个学生类(class),每个学生都有年龄、出生日期、年级和 GPA。找到所有年龄为20 到 23 之间)。 Map似乎不适用,因为它只允许单键,如果我创建多属性索引进行搜索,大O仍然没有减少。我也考虑过使用像AVL树这样的树,但我认为这行不通。
如果有人能给我一些提示,我将不胜感激。
最佳答案
我认为您正在寻找的是 Inverted Index (使用属性名称+值作为键)或者每个属性可能有一个倒排索引。搜索将构建每个属性找到的所有结果的交集。
关于java - 如何选择或编写自己的java数据结构以允许多属性搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46741329/