java - 如何选择或编写自己的java数据结构以允许多属性搜索

标签 java data-structures

我有一个相当大的列表,其中包含一个类的许多实例,该类有许多属性(成员变量)。我的问题是找到一个可行的数据结构来存储这些实例,允许基于多个属性进行搜索,例如数据库搜索(即一个学生类(class),每个学生都有年龄、出生日期、年级和 GPA。找到所有年龄为20 到 23 之间)。 Map似乎不适用,因为它只允许单键,如果我创建多属性索引进行搜索,大O仍然没有减少。我也考虑过使用像AVL树这样的树,但我认为这行不通。

如果有人能给我一些提示,我将不胜感激。

最佳答案

我认为您正在寻找的是 Inverted Index (使用属性名称+值作为键)或者每个属性可能有一个倒排索引。搜索将构建每个属性找到的所有结果的交集。

关于java - 如何选择或编写自己的java数据结构以允许多属性搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46741329/

相关文章:

java - 如何在java中使用正则表达式验证字符串

c++ - 合并两个堆的算法

c++ - 给定一个字符串数组,返回所有是变位词的字符串组

data-structures - Tree是数据结构还是抽象数据类型?

java - 在 Google App Engine 上使用 HttpsURLConnection 检索证书详细信息

java - 使用 Java 有选择地解析日志文件

c - 二维结构数组 -> 无法修复段错误 :(

algorithm - 树中两个节点之间路径的权重和

java.io.FileNotFoundException(访问被拒绝)错误?但是文件正在存储

java - 如何获取 TYPE_3BYTE_BGR 中 jpeg 图像的 rgb 值?