数据查询方法、装置、电子装置和存储介质制造方法及图纸

技术编号:32568682 阅读:11 留言:0更新日期:2022-03-09 16:55
本申请涉及一种数据查询方法,本申请涉及运算机网络技术领域,其中,该数据查询方法包括:获取映射集合中待查询键值对元素的映射值;按照预设规则,根据所述映射值确定所述待查询键值对元素的键值所对应的第一索引;根据所述第一索引获取所述待查询键值对元素的键值。通过本申请,本申请解决了既可以通过映射值查询到键值对元素中映射值所对应的键值,又可以通过键值查询到键值对元素中键值所对应的映射值的技术问题。实现了通过键值对元素的键值和映射值的双向查询的技术效果。键值和映射值的双向查询的技术效果。键值和映射值的双向查询的技术效果。

【技术实现步骤摘要】
数据查询方法、装置、电子装置和存储介质


[0001]本申请涉及计算机数据处理
,特别是涉及一种数据查询方法、装置、电子装置和存储介质。

技术介绍

[0002]在计算机语言中,映射(Map)一种常用的关联容器,用于存储若干个元素,这些元素由键值(key)和映射值(value)组成。在一个映射集合中,不同元素中的key不相重复,且每个key只能映射到一个value。因此,对于相关技术中的Map而言,根据给定的key,可以快速地从Map集合中查找到对应的value。例如,在Java语言中,可以通过V get(Object key)这样的指令获取到key所对应的value。
[0003]但是,在实际的应用场景中,用户也有根据value查询key的需求,但是目前相关技术中的映射是单向映射,常用的数据结构例如红黑树这样的结构,无法实现根据value查询key的功能。
[0004]因此,相关技术中亟需一种能够对映射双向查询的方式。

技术实现思路

[0005]在本实施例中提供了一种数据查询方法、装置、电子装置和存储介质,以解决相关技术中在使用Map时无法通过Value寻找到key的技术问题。
[0006]第一个方面,在本实施例中提供了一种数据查询方法,包括:获取映射集合中待查询键值对元素的映射值;按照预设规则,根据所述映射值确定所述待查询键值对元素的键值所对应的第一索引;根据所述第一索引获取所述待查询键值对元素的键值。
[0007]在其中的一些实施例中,所述按照预设规则,根据所述映射值确定所述待查询键值对元素的键值所对应的第一索引,包括:确定所述映射值所对应的散列值;根据所述散列值以及所述映射集合中用于存储键值对元素的数组长度,确定所述待查询键值对元素的键值所对应的第一索引。
[0008]在其中的一些实施例中,所述根据所述散列值以及所述映射集合中用于存储键值对元素的数组长度,确定所述待查询键值对元素的键值所对应的第一索引,包括,第一索引=(L

1)&散列值,其中,L为所述数组长度,所述散列值是对所述映射值进行的散列计算,&为与运算。
[0009]在其中的一些实施例中,所述方法还包括:
[0010]在所述映射集合中键值对元素的数量更新的情况下,确定更新后的键值对元素的数量;根据更新后的所述数量,更新所述数组长度。
[0011]在其中的一些实施例中,所述第一索引包括所述待查询键值对元素所在的数组标识信息。
[0012]在其中的一些实施例中,所述方法还包括:获取映射集合中待查询键值对元素的键值;按照预设规则,根据所述键值确定所述待查询键值对元素的映射值所对应的第二索
引;根据所述第二索引获取所述待查询键值对元素的映射值。
[0013]在其中的一些实施例中,所述预设规则与开发语言和/或数据结构相匹配。
[0014]第二个方面,在本实施例中提供了一种数据查询装置,包括:获取模块、确定模块和查询模块;所述获取模块用于获取映射集合中待查询键值对元素的映射值;所述确定模块用于按照预设规则,根据所述映射值确定所述待查询键值对元素的键值所对应的索引;所述查询模块用于根据所述索引获取所述待查询键值对元素的键值。
[0015]第三个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的运算机程序,所述处理器执行所述运算机程序时实现上述第一个方面所述的数据查询方法。
[0016]第四个方面,在本实施例中提供了一种存储介质,其上存储有运算机程序,该程序被处理器执行时实现上述第一个方面所述的数据查询方法。
[0017]与相关技术相比,在本申请实施例中,提供的数据查询方法,首先,利用索引查询所述待查询键值对元素中的键值,由于根据所述索引可以定位至所述待查询键值对元素在数组中的位置,并从所述待查询键值对元素中获取到所述映射值所对应的键值。因此,相对于没有索引的查询方式,基于索引的查询方式可以大大减少遍历匹配的次数,明显提升查询速度。其次,根据待查询键值对元素的映射值,可以确定对所述键值的索引,也就是说,通过待查询键值对元素的映射值本身,即可查询到与该映射值对应的键值。因此,本申请解决了相关技术中不可以通过映射值查询到键值对元素中映射值所对应的键值的问题。实现了通过映射值查询到键值的技术效果。
[0018]本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
[0019]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0020]图1是本申请实施例的数据查询方法的流程图;
[0021]图2是本实施例的根据映射值确定待查询键值对元素的键值所对应的第一索引的流程图;
[0022]图3是本申请实施例的另一数据查询方法的流程图;
[0023]图4是本申请实施例的数组结构示意图;
[0024]图5是本实施例的数据查询装置的结构框图;
[0025]图6是本实施例的数据查询装置的优选结构框图。
具体实施方式
[0026]为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
[0027]除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属
具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语

包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
[0028]下面结合附图对本申请所述的数据查询方法进行详细的说明。图1是本申请提供的数据查询方法的一种实施例的流程示意图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑性上不存在必要因果关系的步骤中,这些步骤的执行顺本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据查询方法,其特征在于,包括:获取映射集合中待查询键值对元素的映射值;按照预设规则,根据所述映射值确定所述待查询键值对元素的键值所对应的第一索引;根据所述第一索引获取所述待查询键值对元素的键值。2.根据权利要求1所述的数据查询方法,其特征在于,所述按照预设规则,根据所述映射值确定所述待查询键值对元素的键值所对应的第一索引,包括:确定所述映射值所对应的散列值;根据所述散列值以及所述映射集合中用于存储键值对元素的数组长度,确定所述待查询键值对元素的键值所对应的第一索引。3.根据权利要求2所述的数据查询方法,其特征在于,所述根据所述散列值以及所述映射集合中用于存储键值对元素的数组长度,确定所述待查询键值对元素的键值所对应的第一索引,包括,第一索引=(L

1)&散列值,其中,L为所述数组长度,所述散列值是对所述映射值进行的散列计算,&为与运算。4.根据权利要求2所述的数据查询方法,其特征在于,所述方法还包括:在所述映射集合中键值对元素的数量更新的情况下,确定更新后的键值对元素的数量;根据更新后的所述数量,更新所述数组长度。5.根据权利要...

【专利技术属性】
技术研发人员:张玉康范渊刘博
申请(专利权)人:杭州安恒信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1