使用部分密钥进行多键映射搜索/过滤

Wer*_*oot 7 algorithm data-structures

我的问题类似于部分多键映射的数据结构?.

我有键值对,其中键由三个组件(字符串)组成.

我正在寻找一种数据结构,可以有效地对密钥执行搜索查询,其中查询可以是完整的或部分地指定密钥(省略一个或多个组件).例如:

(x, y, z)
(x, *, *)
(*, y, *)
etc.
Run Code Online (Sandbox Code Playgroud)

密钥的未指定部分可以位于密钥的前部,中部或末端.

我的当前实现(将所有可能的部分键映射到与该部分键匹配的一组值的哈希映射)在插入,删除和更新值时非常慢.

Nuc*_*man 3

我当前的实现(将所有可能的部分键映射到与该部分键匹配的值列表的哈希映射)在插入、删除和更新值时非常慢。

如果您实际上使用的是列表,那么这几乎肯定是问题所在,因为它们删除/更新/插入速度很慢也可能是一个问题,具体取决于您的操作方式。最好使用集合(无序)或平衡二叉搜索树(有序)。