我有大量的键值参数映射到文件路径.大多数都有以下形式
filepath : /some/path
param_name_1 => 1234
param_name_2 => qwerty
但其他人可以包含通配符
filepath : /other/path
param_name_1 => 123*4
param_name_2 => ab?12
在哪里?是匹配任何一个字符的通配符,*是匹配0个字符的通配符.
我的用户可以提供他们自己的一组KV参数,我必须匹配并返回映射的路径.
示例:用户提供
param_name_1 => 1234
param_name_2 => qwerty
Application returns /some/path
用户提供
param_name_1 => 123asdqweqweqdqweq1231asdcase4
param_name_2 => abW12
Application returns /other/path
对于所有不包含通配符的映射,我可以为我存储的映射和用户提供的映射计算hashCode()并执行极快的HashMap查找(3-4个参数匹配,100000个映射,0毫秒,这毕竟是一个哈希值.
对于包含通配符的映射,我很难通过包含通配符的所有映射列表进行线性查找.大约有2000-5000个这样的映射,每个查找只需不到200毫秒,我需要加快速度.
有没有办法我可以进行一般查找以匹配通配符或其他一些可以组合所有映射的匹配技术?