CN108664487B - 一种散列表数据的写入、读取方法及系统 - Google Patents

一种散列表数据的写入、读取方法及系统 Download PDF

Info

Publication number
CN108664487B
CN108664487B CN201710193281.0A CN201710193281A CN108664487B CN 108664487 B CN108664487 B CN 108664487B CN 201710193281 A CN201710193281 A CN 201710193281A CN 108664487 B CN108664487 B CN 108664487B
Authority
CN
China
Prior art keywords
value
hash
entry object
basic data
data type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710193281.0A
Other languages
English (en)
Other versions
CN108664487A (zh
Inventor
陈建龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TCL Technology Group Co Ltd
Original Assignee
TCL Technology Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TCL Technology Group Co Ltd filed Critical TCL Technology Group Co Ltd
Priority to CN201710193281.0A priority Critical patent/CN108664487B/zh
Publication of CN108664487A publication Critical patent/CN108664487A/zh
Application granted granted Critical
Publication of CN108664487B publication Critical patent/CN108664487B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files

Abstract

本发明提供了一种散列表数据的写入、读取方法及系统,通过当写入改进的散列表时,计算键值对应的散列值,将对象类型值与该键值对应的散列值注入到一个入口对象中,同时维护链表指针,最后将该入口对象放入到入口数组对应位置完成写入;当读取指定基本数据类型的键值所对应的对象类型值时,根据传入的键值,计算键值对应的散列值,以其为索引从入口对象数组中找出入口对象,再根据键值与散列值为匹配条件,循环遍历该入口对象链表中的所有入口对象,直到找出匹配值,完成读取。本发明所提供的散列表数据结构没有基础类型的装箱过程,减少了内存的频繁申请释放,减少了读写过程中的垃圾回收,提高了读写效率。

Description

一种散列表数据的写入、读取方法及系统
技术领域
本发明涉及数据存储技术领域,尤其涉及的是改进基础类型的散列表存储数据的写入、读取方法及系统。
背景技术
在现代面向对象的编程语言Java中,散列表数据存储结构广泛应用于有需要存储键值对数据格式的场景中。比如以电话号码为键,以姓名为值,存储用户基础信息,在Java中是以整型对象为键,字符串类型为值的键值对散列表数据结构。结合图1和图2所示,在进行写入和读取的过程中,由于Java内置的散列表数据结构是基于对象的,因此在通常的数据写入和读取的场景中,键值为基本数据类型(如短整型、长整型等)时,需要将基本类型装箱为对应的对象类型键值,并根据对象类型键值计算其散列值,根据所述散列值对其存储位置进行定位,然后才能读写。由于Java在将基础数据类型进行对象装箱时需要申请内存保存对象,并对对象进行赋值等消耗资源的操作,因此在需要大量基础类型为键的散列表数据结构的场景中,上述步骤所造成的资源损耗占据了很大一部分。
因此,现有技术有待于进一步的改进。
发明内容
鉴于上述现有技术中的不足之处,本发明的目的在于为用户提供一种散列表数据的写入、读取方法及系统,克服现有技术中在对基础数据类型数据进行对象装箱时大量消耗资源的缺陷。
本发明解决技术问题所采用的技术方案如下:
一种散列表数据的写入方法,其中,基于基础数据类型为键值的散列表数据存储结构,所述实现方法包括步骤:
步骤A1、获取基础数据类型的键值K和对象类型值V,并根据散列算法计算所述基础数据类型的键值所对应的位置值P;
步骤B1、通过所述位置值P定位入口对象列表T[P]的对应位置;
步骤C1、判断所述入口对象列表T[P]的对应位置是否含有与所述基础数据类型的键值相同的散列值,若有,则将所述入口对象列表T[P]的对应位置含有的散列值替换为所述基础数据类的键值所对应的散列值,否则执行步骤D1;
步骤D1、新建一个入口对象E_N,并将新建入口对象E_N的散列值赋值为K,对象类型值赋值为V,将新建入口对象E_N的链表指针指向所述对应位置P所对应的入口对象E_0,并在入口对象数组中所述对应位置设置所述新建入口对象。
所述的散列表数据的写入方法,其中,所述步骤A1之前还包括:
步骤A01、定义入口对象E的数据结构包括:散列值H、对象类型值V和指向链表下一项的链表指针next。
所述的一种散列表数据的写入方法,其中,所述步骤C1中判断所述入口对象列表T[P]的对应位置是否含有与所述基础数据类型的键值相同的散列值的方法步骤为:
获取所述入口对象列表T[P]的对应位置所对应的入口对象E_0,通过链表形式遍历入口对象E_0中的元素,判断元素中是否存在与所述基础数据类型的键值K相等的散列值,若存在,则说明所述入口对象列表T[P]的对应位置含有与所述基础数据类型的键值相同的散列值,否则不含有。
一种散列表数据的读取方法,其中,包括步骤:
步骤A2、获取基础数据类型的键值K,并根据预设散列算法计算所述基础数据类型的键值K所对应的位置值P;
步骤B2、通过所述位置值P索引出入口对象列表T[P]的对应位置;
步骤C2、获取所述入口对象列表T[P]的入口对象E,并判断所述入口对象E列表中元素含有的散列值是否与所述基础数据类型的键值K相同,若相同,则返回对象类型值V,否则,返回空值。
所述的散列表数据的读取方法,其中,所述步骤C2中判断所述入口对象E列表中元素含有的散列值是否与所述基础数据类型的键值K相同的方法步骤为:
通过链表形式遍历入口对象E列表中的元素,判断其中是否存在与所述基础数据类型的键值K相同的散列值。
一种散列表数据的写入系统,其中,包括:
第一计算模块,用于获取基础数据类型的键值K和对象类型值V,并根据散列算法计算所述基础数据类型的键值所对应的位置值P;
位置定位模块,用于通过所述位置值P定位入口对象列表T[P]的对应位置;
相同值替换模块,用于判断所述入口对象列表T[P]的对应位置是否含有与所述基础数据类型的键值相同的散列值,若有,则将所述入口对象列表T[P]的对应位置含有的散列值替换为所述基础数据类的键值所对应的散列值;
新建存储模块,用于当所述入口对象列表T[P]的对应位置不含有与所述基础数据类型的键值相同的散列值时,新建一个入口对象E_N,并将新建入口对象E_N的散列值赋值为K,对象类型值赋值为V,将新建入口对象E_N的链表指针指向所述对应位置所对应的入口对象E_0,并在入口对象数组中所述对应位置值设置所述新建入口对象。
所述的散列表数据的写入系统,其中,所述系统还包括:
对象定义模块,用于定义入口对象E的数据结构包括:散列值H、对象类型值V和指向链表下一项的链表指针next。
所述的散列表数据的写入系统,其中,所述相同值替换模块包括:
元素判断单元,用于获取所述入口对象列表T[P]的对应位置所对应的入口对象E_0,通过链表形式遍历入口对象E_0中的元素,判断元素中是否存在与所述基础数据类型的键值K相等的散列值,若存在,则说明所述入口对象列表T[P]的对应位置含有与所述基础数据类型的键值相同的散列值,否则不含有。
一种散列表数据的读取系统,其中,包括:
第二计算模块,用于获取基础数据类型的键值K,并根据预设散列算法计算所述基础数据类型的键值K所对应的位置值P;
位置索引模块,用于通过所述位置值P索引出入口对象列表T[P]的对应位置;
查找反馈模块,用于获取所述入口对象列表T[P]的入口对象E,并判断所述入口对象E列表中元素含有的散列值是否与所述基础数据类型的键值K相同,若相同,则返回对象类型值V,否则,返回空值。
所述的散列表数据的读取系统,其中,位置索引模块包括:
查找比对单元,用于通过链表形式遍历入口对象E列表中的元素,判断其中是否存在与所述基础数据类型的键值K相同的散列值。
有益效果,本发明提供了一种散列表数据的写入、读取方法及系统,通过当写入改进的散列表时,计算键值对应的散列值,将对象类型值与该键值对应的散列值注入到一个入口对象中,同时维护链表指针,最后将该入口对象放入到入口数组对应位置完成写入;当读取指定基本数据类型的键值所对应的对象类型值时,根据传入的键值,计算键值对应的散列值,以其为索引从入口对象数组中找出入口对象,再根据键值与散列值为匹配条件,循环遍历该入口对象链表中的所有入口对象,直到找出匹配值,完成读取。本发明所提供的散列表数据结构没有基础类型的装箱过程,减少了内存的频繁申请释放,减少了读写过程中的垃圾回收,提高了读写效率。
附图说明
图1是现有技术中散列表数据的写入方法步骤流程图。
图2是现有技术中散列表数据的读写方法步骤流程图。
图3是本发明所提供的散列表数据的写入方法步骤流程图。
图4是本发明所提供的散列表数据的写入方法具体实施例的步骤流程图。
图5是本发明所述的散列表数据的读写方法的步骤流程图。
图6是本发明所提供的散列表数据的读写方法具体实施例的步骤流程图。
图7是本发明所提供的散列表数据的写入系统的原理结构示意图。
图8是本发明所提供的散列表数据的读写系统的原理结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
在现有技术中的基础类型的散列表数据存储结构的基础上,为了减少散列表键值为基础类型时因自动装箱拆箱造成的资源损耗,以此提高数据的读写效率,本发明提供了一种散列表数据的写入方法,其中基于基础数据类型为键值的散列表数据存储结构,如图3所示,所述实现方法包括步骤:
步骤S11、获取基础数据类型的键值K和对象类型值V,并根据散列算法计算所述基础数据类型的键值所对应的位置值P。
获取要存储的基础数据类型的键值K和对象类型值V,将所述基础数据类型的键值K和对象类型值V写入,并根据散列算法计算基础数据类型的键值所对应的位置值,也即是根据基础数据类型的键值计算出其所对应的唯一散列值。其中,预设散列算法可以使用任意一种,只要能根据基础数据类型的键值计算出所对应的散列值即可。
步骤S21、通过所述位置值P定位入口对象列表T[P]的对应位置。
根据计算出的所述位置值P将基础数据类型的键值K定位到散列表中入口对象列表的对应位置。
步骤S31、判断所述入口对象列表T[P]的对应位置是否含有与所述基础数据类型的键值相同的散列值,若有,则将所述入口对象列表T[P]的对应位置含有的散列值替换为所述基础数据类的键值所对应的散列值,否则执行步骤S41。
根据上述步骤S21中定位出的对应位置,对所述对应位置中是否存储有与待存储数据相同散列值进行判断,若有,则进行替换,若没有,否则执行下一步。
步骤S41、新建一个入口对象E_N,并将新建入口对象E_N的散列值赋值为K,对象类型值赋值为V,将新建入口对象E_N的链表指针指向所述对应位置所对应的入口对象E_0,并在入口对象数组中所述对应位置设置所述新建入口对象。
所述步骤S11之前还包括:
步骤S01、定义入口对象E的数据结构包括:散列值H、对象类型值V和指向链表下一项的链表指针next。
所述步骤S31中判断所述入口对象列表T[P]的对应位置P是否含有与所述基础数据类型的键值相同的散列值的方法步骤为:
获取所述入口对象列表T[P]的对应位置所对应的入口对象E_0,通过链表形式遍历入口对象E_0中的元素,判断元素中是否存在与所述基础数据类型的键值K相等的散列值,若存在,则说明所述入口对象列表T[P]的对应位置含有与所述基础数据类型的键值相同的散列值,否则不含有。
为了对本发明所提供的写入方法做进一步的说明,下面以其具体应用实施例为例做详细的解释。
如图4所示,当向改进的基于基础数据类型为键的散列表数据存储结构写入数据时:
步骤H11、首先在改进的散列表HT内部维护一个入口对象集合T[ ],所述入口对象T中存储有多个入口对象E的数据类型,入口对象E的内部为链表数据结构,其含有散列值H,值对象V,指向链表下一项的指针next。
步骤H12、传入基础数据类型的键K,对象类型值V。
步骤H13、根据散列算法将K算得对应的位置值P。
步骤H14、通过位置值P定位到散列表HT中入口对象列表T[P]的对应位置。
步骤H15、取得T[P]的入口对象E,通过链表形式遍历E列表中元素,如果有存在入口对象E散列值与当前K相等,则替换,完成写入。
步骤H16、如果步骤H15没有存在入口对象E哈希值与当前K相等,则新建一个入口对象E_N,其散列值标赋值为K,值对象赋值V,将当前新建的入口对象E_N的链表指针指向原有T[P]对应的入口对象E_O,即E_N =E_O。
步骤H17、将入口对象数组T中P位置值设置为步骤H16中新建的入口对象E_N,完成写入。
本发明在公开上述数据写入方法的前提下,还公开了一种散列表数据的读取方法,如图5所示,包括步骤:
步骤S21、获取基础数据类型的键值K,并根据预设散列算法计算所述基础数据类型的键值K所对应的位置值P。
步骤S22、通过所述位置值P索引出入口对象列表T[P]的对应位置。
步骤S23、获取所述入口对象列表T[P]的入口对象E,并判断所述入口对象E列表中元素含有的散列值是否与所述基础数据类型的键值K相同,若相同,则返回对象类型值V,否则,返回空值。
所述步骤S32中判断所述入口对象E列表中元素含有的散列值是否与所述基础数据类型的键值K相同的方法步骤为:
通过链表形式遍历入口对象E列表中的元素,判断其中是否存在与所述基础数据类型的键值K相同的散列值。
下面以读取方法的具体应用实施例为例,对所述读取方法做进一步的说明。
结合图6所示,当从改进的基于基础数据类型为键的散列表数据存储结构中读取数据时,包括以下步骤:
步骤H21、直接传入基础数据类型键K,不需经过自动装箱。
步骤H22、根据散列算法将K算得对应的位置P。
步骤H23、通过位置P索引到散列表中入口对象列表T的对应位置T[P]。
步骤H24、取得T[P]的入口对象E,通过链表形式遍历E列表中元素,如果有存在入口对象E散列值与当前K相等,则返回值V,完成读取。
步骤H25、若步骤H24中未找到与K相等的散值,则返回空值,完成读取。
本发明提供一种改进的基于基础数据类型为键的散列表数据存储结构实现方案,可以应用于频繁使用基础数据类型为键的键值对数据结构实现中,由于没有基础类型的装箱过程,减少了内存的频繁申请释放,减少了读写过程中内存占用,提高了写入效率。
在上述本发明提供的一种散列表数据的写入方法的基础上,本发明还提供了一种散列表数据的写入系统,如图7所示,包括:
位置值计算模块110,用于获取基础数据类型的键值K和对象类型值V,并根据散列算法计算所述基础数据类型的键值所对应的位置值P;其功能如步骤S11所述。
位置定位模块120,用于通过所述位置值P将所述基础数据类型的键值K定位到散列表中入口对象列表T[P]的对应位置;其功能如步骤S12所述。
相同值替换模块130,用于判断所述入口对象列表T[P]的对应位置是否含有与所述基础数据类型的键值相同的散列值,若有,则将所述入口对象列表T[P]的对应位置含有的散列值替换为所述基础数据类的键值所对应的散列值;其功能如步骤S13所述。
新建存储模块,用于当所述入口对象列表T[P]的对应位置不含有与所述基础数据类型的键值相同的散列值时,新建一个入口对象E_N,并将新建入口对象E_N的散列值赋值为K,对象类型值赋值为V,将新建入口对象E_N的链表指针指向所述对应位置P所对应的入口对象E_0,并将入口对象数组中所对应位置值P设置为所述新建入口对象,其功能如步骤S14所述。
所述系统还包括:
对象定义模块,用于定义入口对象E的数据结构包括:散列值H、对象类型值V和指向链表下一项的链表指针next。
所述相同值替换模块包括:
元素判断单元,用于获取所述入口对象列表T[P]的对应位置P所对应的入口对象E_0,通过链表形式遍历入口对象E_0中的元素,判断元素中是否存在与所述基础数据类型的键值K相等的散列值,若存在,则说明所述入口对象列表T[P]的对应位置P含有与所述基础数据类型的键值相同的散列值,否则不含有。
在上述读取方法的基础上,本发明还公开了一种散列表数据的读取系统,如图8所示,所述读取系统包括:
第二计算模块210,用于获取基础数据类型的键值K,并根据预设散列算法计算所述基础数据类型的键值K所对应的位置值P;其功能如步骤S12所述。
位置索引模块220,用于通过所述位置值P索引出散列表中入口对象列表T[P]的对应位置;其功能如步骤S22所述。
查找反馈模块230,用于获取所述入口对象列表T[P]的入口对象E,并判断所述入口对象E列表中元素含有的散列值是否与所述基础数据类型的键值K相同,若相同,则返回对象类型值V,否则,返回空值,其功能如步骤S23所述。
位置索引模块包括:
查找比对单元,用于通过链表形式遍历入口对象E列表中的元素,判断其中是否存在与所述基础数据类型的键值K相同的散列值。
本发明提供了一种散列表数据的写入、读取方法及系统,通过当写入改进的散列表时,计算键值对应的散列值,将对象类型值与该键值对应的散列值注入到一个入口对象中,同时维护链表指针,最后将该入口对象放入到入口数组对应位置完成写入;当读取指定基本数据类型的键值所对应的对象类型值时,根据传入的键值,计算键值对应的散列值,以其为索引从入口对象数组中找出入口对象,再根据键值与散列值为匹配条件,循环遍历该入口对象链表中的所有入口对象,直到找出匹配值,完成读取。本发明所提供的散列表数据结构没有基础类型的装箱过程,减少了内存的频繁申请释放,减少了读写过程中的垃圾回收,提高了读写效率。
本发明所提供的所述写入系统和读取系统可以设置在存储器中,也可以设置在内存条中,提高了数据的读写效率的同时,也改善了存储器和内存条的功能。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。

Claims (6)

1.一种散列表数据的写入方法,其特征在于,包括步骤:
步骤A1、获取基础数据类型的键值K和对象类型值V,并根据散列算法计算所述基础数据类型的键值所对应的位置值P;
步骤B1、通过所述位置值P定位入口对象列表T[P]的对应位置;
步骤C1、判断所述入口对象列表T[P]的对应位置是否含有与所述基础数据类型的键值相同的散列值,若有,则将所述入口对象列表T[P]的对应位置含有的散列值替换为所述基础数据类的键值所对应的散列值,否则执行步骤D1;
步骤D1、新建一个入口对象E_N,并将新建入口对象E_N的散列值赋值为K,对象类型值赋值为V,将新建入口对象E_N的链表指针指向所述对应位置P所对应的入口对象E_0,并在入口对象数组中所述对应位置设置所述新建入口对象;
所述步骤C1中判断所述入口对象列表T[P]的对应位置是否含有与所述基础数据类型的键值相同的散列值的方法步骤为:
获取所述入口对象列表T[P]的对应位置所对应的入口对象E_0,通过链表形式遍历入口对象E_0中的元素,判断元素中是否存在与所述基础数据类型的键值K相等的散列值,若存在,则所述入口对象列表T[P]的对应位置含有与所述基础数据类型的键值相同的散列值,否则不含有;其中,判断元素中是否存在与所述基础数据类型的键值K相等的散列值为判断元素的哈希值是否与键值K相等。
2.根据权利要求1所述的散列表数据的写入方法,其特征在于,所述步骤A1之前还包括:
步骤A01、定义入口对象E的数据结构包括:散列值H、对象类型值V和指向链表下一项的链表指针next。
3.一种散列表数据的读取方法,其特征在于,包括步骤:
步骤A2、获取基础数据类型的键值K,并根据预设散列算法计算所述基础数据类型的键值K所对应的位置值P;
步骤B2、通过所述位置值P索引出入口对象列表T[P]的对应位置;
步骤C2、获取所述入口对象列表T[P]的入口对象E,并判断所述入口对象E列表中元素含有的散列值是否与所述基础数据类型的键值K相同,若相同,则返回对象类型值V,否则,返回空值;
所述步骤C2中判断所述入口对象E列表中元素含有的散列值是否与所述基础数据类型的键值K相同的方法步骤为:
通过链表形式遍历入口对象E列表中的元素,判断其中是否存在与所述基础数据类型的键值K相同的散列值;其中,判断其中是否存在与所述基础数据类型的键值K相同的散列值为判断元素的哈希值是否与键值K相等。
4.一种散列表数据的写入系统,其特征在于,包括:
第一计算模块,用于获取基础数据类型的键值K和对象类型值V,并根据散列算法计算所述基础数据类型的键值所对应的位置值P;
位置定位模块,用于通过所述位置值P定位入口对象列表T[P]的对应位置;
相同值替换模块,用于判断所述入口对象列表T[P]的对应位置是否含有与所述基础数据类型的键值相同的散列值,若有,则将所述入口对象列表T[P]的对应位置含有的散列值替换为所述基础数据类的键值所对应的散列值;
新建存储模块,用于当所述入口对象列表T[P]的对应位置不含有与所述基础数据类型的键值相同的散列值时,新建一个入口对象E_N,并将新建入口对象E_N的散列值赋值为K,对象类型值赋值为V,将新建入口对象E_N的链表指针指向所述对应位置P所对应的入口对象E_0,并在入口对象数组中所述对应位置设置所述新建入口对象;
所述相同值替换模块包括:
元素判断单元,用于获取所述入口对象列表T[P]的对应位置所对应的入口对象E_0,通过链表形式遍历入口对象E_0中的元素,判断元素中是否存在与所述基础数据类型的键值K相等的散列值,若存在,则说明所述入口对象列表T[P]的对应位置含有与所述基础数据类型的键值相同的散列值,否则不含有;其中,判断元素中是否存在与所述基础数据类型的键值K相等的散列值为判断元素的哈希值是否与键值K相等。
5.根据权利要求4所述的散列表数据的写入系统,其特征在于,所述系统还包括:
对象定义模块,用于定义入口对象E的数据结构包括:散列值H、对象类型值V和指向链表下一项的链表指针next。
6.一种散列表数据的读取系统,其特征在于,包括:
第二计算模块,用于获取基础数据类型的键值K,并根据预设散列算法计算所述基础数据类型的键值K所对应的位置值P;
位置索引模块,用于通过所述位置值P索引出入口对象列表T[P]的对应位置;
查找反馈模块,用于获取所述入口对象列表T[P]的入口对象E,并判断所述入口对象E列表中元素含有的散列值是否与所述基础数据类型的键值K相同,若相同,则返回对象类型值V,否则,返回空值;
位置索引模块包括:
查找比对单元,用于通过链表形式遍历入口对象E列表中的元素,判断其中是否存在与所述基础数据类型的键值K相同的散列值;其中,判断其中是否存在与所述基础数据类型的键值K相同的散列值为判断元素的哈希值是否与键值K相等。
CN201710193281.0A 2017-03-28 2017-03-28 一种散列表数据的写入、读取方法及系统 Active CN108664487B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710193281.0A CN108664487B (zh) 2017-03-28 2017-03-28 一种散列表数据的写入、读取方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710193281.0A CN108664487B (zh) 2017-03-28 2017-03-28 一种散列表数据的写入、读取方法及系统

Publications (2)

Publication Number Publication Date
CN108664487A CN108664487A (zh) 2018-10-16
CN108664487B true CN108664487B (zh) 2021-12-14

Family

ID=63786572

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710193281.0A Active CN108664487B (zh) 2017-03-28 2017-03-28 一种散列表数据的写入、读取方法及系统

Country Status (1)

Country Link
CN (1) CN108664487B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110764705B (zh) * 2019-10-22 2023-08-04 北京锐安科技有限公司 一种数据的读写方法、装置、设备和存储介质
CN111651406B (zh) * 2020-05-21 2023-07-25 杭州明讯软件技术有限公司 一种自动化载波调度系统文件读取方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6442553B1 (en) * 1994-10-31 2002-08-27 Fujitsu Limited Hash system and hash method for transforming records to be hashed
CN101345694A (zh) * 2007-07-11 2009-01-14 上海未来宽带技术及应用工程研究中心有限公司 一种快速查找定位和匹配访问控制列表的方法
CN102722557A (zh) * 2012-05-29 2012-10-10 南京大学 一种相同数据块的自适应识别方法
CN104462549A (zh) * 2014-12-25 2015-03-25 瑞斯康达科技发展股份有限公司 一种数据处理方法和装置
CN104572983A (zh) * 2014-12-31 2015-04-29 北京锐安科技有限公司 基于内存的散列表的构建方法、文本查找方法及相应装置
CN106202548A (zh) * 2016-07-25 2016-12-07 网易(杭州)网络有限公司 数据存储方法、查找方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515965B2 (en) * 2010-05-18 2013-08-20 Lsi Corporation Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors
CN102629269B (zh) * 2012-03-09 2014-09-24 深圳市民德电子科技有限公司 一种嵌入式数据库的检索及存储方法
US10255309B2 (en) * 2014-11-25 2019-04-09 Sap Se Versioned insert only hash table for in-memory columnar stores

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6442553B1 (en) * 1994-10-31 2002-08-27 Fujitsu Limited Hash system and hash method for transforming records to be hashed
CN101345694A (zh) * 2007-07-11 2009-01-14 上海未来宽带技术及应用工程研究中心有限公司 一种快速查找定位和匹配访问控制列表的方法
CN102722557A (zh) * 2012-05-29 2012-10-10 南京大学 一种相同数据块的自适应识别方法
CN104462549A (zh) * 2014-12-25 2015-03-25 瑞斯康达科技发展股份有限公司 一种数据处理方法和装置
CN104572983A (zh) * 2014-12-31 2015-04-29 北京锐安科技有限公司 基于内存的散列表的构建方法、文本查找方法及相应装置
CN106202548A (zh) * 2016-07-25 2016-12-07 网易(杭州)网络有限公司 数据存储方法、查找方法及装置

Also Published As

Publication number Publication date
CN108664487A (zh) 2018-10-16

Similar Documents

Publication Publication Date Title
US11144710B2 (en) Device with communication interface and method for controlling database access
CN110134668B (zh) 应用于区块链的数据迁移方法、装置和设备
CN102968373B (zh) 一种测试系统的维护方法及装置
CN107590123B (zh) 车载中地点上下文指代消解方法及装置
CN106155775B (zh) 消息处理方法、设备及系统
CN104423961B (zh) 一种生成测试脚本的方法及系统
CN103092970A (zh) 一种数据库操作方法及设备
CN105868421A (zh) 一种数据管理方法及装置
US10466985B2 (en) Hybrid deoptimization mechanism for class hierarchy analysis
US20150058267A1 (en) Method of designing business logic, server performing the same and storage medium storing the same
US10649744B1 (en) Systems and methods for handling renaming of programming constructs in programming environments
CN104850565A (zh) 一种基于k-v存储系统的元数据管理方法
CN108664487B (zh) 一种散列表数据的写入、读取方法及系统
CN103778239A (zh) 一种多数据库数据管理方法及系统
US8316357B2 (en) Type descriptor management for frozen objects
CN108563694A (zh) 对逻辑删除的sql执行方法、装置、计算机设备和存储介质
CN109614325A (zh) 一种确定控件属性的方法及装置、电子设备和存储介质
CN103677778A (zh) 一种CAP文件Classref常量的解析方法
CN111144132B (zh) 一种语义识别方法及装置
CN116302930A (zh) 应用测试方法和装置
CN105677805A (zh) 一种利用protobuf的数据存储、读取方法及装置
CN103632185A (zh) 一种具有扩展功能的掩膜智能卡
CN105867886B (zh) 一种写表格的方法及装置
CN103198011B (zh) 一种探测java程序文件扰动的方法及装置
CN103955372A (zh) 一种移动终端中资源的检测方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 516006 TCL science and technology building, No. 17, Huifeng Third Road, Zhongkai high tech Zone, Huizhou City, Guangdong Province

Applicant after: TCL Technology Group Co.,Ltd.

Address before: 516006 Guangdong province Huizhou Zhongkai hi tech Development Zone No. nineteen District

Applicant before: TCL Corp.

GR01 Patent grant
GR01 Patent grant