一种金融数据存储方法及相关装置制造方法及图纸

技术编号:38839940 阅读:11 留言:0更新日期:2023-09-17 09:54
本发明专利技术实施例公开了一种金融数据存储方法及相关装置,其中,该方法包括:获取包含待存储key的待存储金融数据,及获取第n个待存储key匹配的第i个元素;根据第i个元素中的数据存储状态,将第n个待存储key存储至第j个元素中,第j个元素为未存储数据的匹配的第i个元素中或者匹配的第i个元素的下一个未存储数据的元素中;并将第n个待存储key对应的value存储至内存中第二数组的第a个元素中,其中,a=j,第二数组的元素用于存储value。将待存储key和待存储key对应的value存储至未存储有数据的元素中,实现同时对第一数组和第二数组进行维护,并且不需要通过链表将元素中已有数据和新增数据维护起来,实现了对存储方式进行优化,以减少占用过大的存储内存。以减少占用过大的存储内存。以减少占用过大的存储内存。

【技术实现步骤摘要】
一种金融数据存储方法及相关装置


[0001]本专利技术涉及金融数据处理
,尤其涉及一种金融数据存储方法及相关装置。

技术介绍

[0002]目前,存储金融数据的方式一般为在解析文件的过程中生成了大量的HashMap,其中,HashMap是一个用于存储key

Value键值对的集合,用于存放文件中的金融数据,HashMap是链表加数组的数据结构实现的,数组包含了多个存储数据的桶(元素),在放入数据时,根据key算出hashcode(哈希值)然后分配到某个桶中,如果这个桶(元素)里已经有数据了,则把新来的跟已有的通过链表维护起来。而链表的维护需要知道这个元素的前一个节点和后一个节点,这就需要存储空间来存前一个节点的地址和后一个节点的地址,导致需要占用过大的存储内存,因此,需要对存储方式进行优化,以实现减少占用过大的存储内存。

技术实现思路

[0003]本专利技术的主要目的在于提供一种金融数据存储方法、装置、计算机设备及存储介质,可以解决现有技术中的金融数据存储占用过大的存储内存的问题。
[0004]为实现上述目的,本专利技术第一方面提供一种金融数据存储方法,所述方法包括:
[0005]获取包含待存储key的待存储金融数据,及获取第n个待存储key匹配的第i个元素;其中,所述待存储金融数据为key

value类型的数据,所述元素为内存中第一数组的元素,所述第一数组的元素用于存储key;待存储金融数据包含z个待存储key,其中,z至少为1,n的初始值为1;
[0006]根据第n个待存储key匹配的第i个元素中的数据存储状态,将所述第n个待存储key存储至第j个元素中,其中,所述第j个元素为未存储数据的所述匹配的第i个元素中或者所述匹配的第i个元素的下一个未存储数据的元素中;
[0007]并将所述第n个待存储key对应的value存储至内存中第二数组的第a个元素中,其中,a=j,所述第二数组的元素用于存储value。
[0008]结合第一方面,在一种可能的实现方式中,上述根据第n个待存储key匹配的第i个元素中的数据存储状态,将所述第n个待存储key存储至第j个元素中,包括:判断所述第i个元素是否已存储有数据,若所述第i个元素未存储有数据,则j=i,将所述第n个待存储key存储至所述第j个元素中;若所述第i个元素已存储有数据,则令i=i+1,返回执行判断所述第i个元素是否已存储有数据的步骤。
[0009]结合第一方面,在一种可能的实现方式中,上述根据第n个待存储key匹配的第i个元素中的数据存储状态,将所述第n个待存储key存储至第j个元素中,包括:获取z个待存储key匹配的元素,得到元素合集;判断与第n个待存储key匹配的第i个元素是否已存储有数据,若所述第i个元素未存储有数据,则j=i,将所述第n个待存储key存储至所述第j个元素
中;若所述第i个元素已存储有数据,则将所述第n个待存储key存储至第i个元素的下一个未存储数据且不在元素集合中的元素。
[0010]结合第一方面,在一种可能的实现方式中,上述将所述第n个待存储key存储至第i个元素的下一个未存储数据且不在元素集合中的元素,包括:令i=i+1,判断第i个元素是否在元素合集中,若所述第i个元素在元素合集中,则令i=i+1,返回判断第i个元素是否在元素合集中的步骤;若所述第i个元素不在元素合集中,则返回执行判断所述第i个元素是否已存储有数据的步骤。
[0011]结合第一方面,在一种可能的实现方式中,上述获取所述待存储key匹配的第i个元素,包括:计算所述待存储key的哈希值,将第一数组中下标数值等于所述哈希值的元素确定为待存储key对应的第i个元素,i等于待存储key的哈希值。
[0012]为实现上述目的,本专利技术第二方面提供一种金融数据存储装置,所述装置包括:
[0013]获取模块:用于获取包含待存储key的待存储金融数据,及获取第n个待存储key匹配的第i个元素;其中,所述待存储金融数据为key

value类型的数据,所述元素为内存中第一数组的元素,所述第一数组的元素用于存储key;待存储金融数据包含z个待存储key,其中,z至少为1,n的初始值为1;
[0014]key存储模块:用于根据第n个待存储key匹配的第i个元素中的数据存储状态,将所述第n个待存储key存储至第j个元素中,其中,所述第j个元素为未存储数据的所述匹配的第i个元素中或者所述匹配的第i个元素的下一个未存储数据的元素中;
[0015]value存储模块:用于并将所述第n个待存储key对应的value存储至内存中第二数组的第a个元素中,其中,a=j,所述第二数组的元素用于存储value。
[0016]结合第二方面,在一种可能的设计中,上述key存储模块包括判断模块:所述判断模块:用于判断所述第i个元素是否已存储有数据,若所述第i个元素未存储有数据,则j=i,将所述第n个待存储key存储至所述第j个元素中;若所述第i个元素已存储有数据,则令i=i+1,返回执行判断所述第i个元素是否已存储有数据的步骤。
[0017]结合第二方面,在一种可能的设计中,上述key存储模块包括判断确定模块:所述判断确定模块:用于获取z个待存储key匹配的元素,得到元素合集;判断与第n个待存储key匹配的第i个元素是否已存储有数据,若所述第i个元素未存储有数据,则j=i,将所述第n个待存储key存储至所述第j个元素中;若所述第i个元素已存储有数据,则将所述第n个待存储key存储至第i个元素的下一个未存储数据且不在元素集合中的元素。
[0018]为实现上述目的,本专利技术第三方面提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
[0019]获取包含待存储key的待存储金融数据,及获取第n个待存储key匹配的第i个元素;其中,所述待存储金融数据为key

value类型的数据,所述元素为内存中第一数组的元素,所述第一数组的元素用于存储key;待存储金融数据包含z个待存储key,其中,z至少为1,n的初始值为1;
[0020]根据第n个待存储key匹配的第i个元素中的数据存储状态,将所述第n个待存储key存储至第j个元素中,其中,所述第j个元素为未存储数据的所述匹配的第i个元素中或者所述匹配的第i个元素的下一个未存储数据的元素中;
[0021]并将所述第n个待存储key对应的value存储至内存中第二数组的第a个元素中,其
中,a=j,所述第二数组的元素用于存储value。
[0022]为实现上述目的,本专利技术第四方面提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
[0023]获取包含待存储key的待存储金融数据,及获取第n个待存储key匹配的第i个元素;其中,所述待存储金融本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种金融数据存储方法,其特征在于,所述方法包括:获取包含待存储key的待存储金融数据,及获取第n个待存储key匹配的第i个元素;其中,所述待存储金融数据为key

value类型的数据,所述元素为内存中第一数组的元素,所述第一数组的元素用于存储key;待存储金融数据包含z个待存储key,其中,z至少为1,n的初始值为1;根据第n个待存储key匹配的第i个元素中的数据存储状态,将所述第n个待存储key存储至第j个元素中,其中,所述第j个元素为未存储数据的所述匹配的第i个元素中或者所述匹配的第i个元素的下一个未存储数据的元素中;并将所述第n个待存储key对应的value存储至内存中第二数组的第a个元素中,其中,a=j,所述第二数组的元素用于存储value。2.根据权利要求1所述的方法,其特征在于,所述根据第n个待存储key匹配的第i个元素中的数据存储状态,将所述第n个待存储key存储至第j个元素中,包括:判断所述第i个元素是否已存储有数据,若所述第i个元素未存储有数据,则j=i,将所述第n个待存储key存储至所述第j个元素中;若所述第i个元素已存储有数据,则令i=i+1,返回执行判断所述第i个元素是否已存储有数据的步骤。3.根据权利要求1所述的方法,其特征在于,所述根据第n个待存储key匹配的第i个元素中的数据存储状态,将所述第n个待存储key存储至第j个元素中,包括:获取z个待存储key匹配的元素,得到元素合集;判断与第n个待存储key匹配的第i个元素是否已存储有数据,若所述第i个元素未存储有数据,则j=i,将所述第n个待存储key存储至所述第j个元素中;若所述第i个元素已存储有数据,则将所述第n个待存储key存储至第i个元素的下一个未存储数据且不在元素集合中的元素。4.根据权利要求3所述的方法,其特征在于,所述将所述第n个待存储key存储至第i个元素的下一个未存储数据且不在元素集合中的元素,包括:令i=i+1,判断第i个元素是否在元素合集中,若所述第i个元素在元素合集中,则令i=i+1,返回判断第i个元素是否在元素合集中的步骤;若所述第i个元素不在元素合集中,则返回执行判断所述第i个元素是否已存储有数据的步骤。5.根据权利要求1所述的方法,其特征在于,所述获取所述待存储key匹配的第i个元素...

【专利技术属性】
技术研发人员:牛煜超
申请(专利权)人:平安银行股份有限公司
类型:发明
国别省市:

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

1