一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图数据存取方法、电子装置和存储介质与流程

2022-03-01 21:12:29 来源:中国专利 TAG:


1.本技术涉及图数据处理技术领域,特别是涉及图数据存取方法、电子装置和存储介质。


背景技术:

2.知识图谱通过建立数据之间的关联链接,可以有效地将碎片化的数据有机组织起来。图1是相关技术中知识图谱的结构示意图,如图1所示,该图用于描述东汉末年发生的战争,图中包括以下内容:三个顶点对象,分别是“刘备”、“曹操”、“汉中之战”。三个边对象,分别是a、b、c,a代表“刘备”与“曹操”的关系,b代表“刘备”与“汉中之战”的关系,c代表“曹操”与“汉中之战”的关系。各顶点对象、边对象携带有唯一标识号(id)和属性(properties),属性以键值对形式呈现,例如“字:玄德”,其中“字”为属性的键,“玄德”为属性的值。某个对象可以有多个属性,例如“刘备”可以有两个属性,分别是“sex”和“style name”。
3.相关技术将碎片化的数据通过数据计算、数据治理存储到图数据库中,上层业务通过查询、解析、组装步骤将图数据库里的数据转成结构化或者半结构的数据来使用,这也是将数据从外存迁移到内存的实现过程。以下将介绍相关技术的图数据处理方法。
4.通过把图数据中的边数据信息与顶点数据信息分别存储,采用定义数据字典对属性数据进行解析的方式,根据名称和数据类型抽取出有意义的数据,通过数据字典对属性数据进行进一步处理获得顶点和/或边的属性值。
5.然而,该方法在组装图结构时,虽然边数据信息与顶点数据信息分别存储,但是属性数据仍然存在着冗余存储的问题,例如,在图1中,“刘备”和“曹操”拥有相同的属性,即男性性别,在内存中存储这两个顶点对象和各自的属性时,需要为同一个属性开辟两份存储空间,这种存储格式的图数据在高效性、通用性上有所欠缺,不易拓展,不利于节省内存资源消耗和提高效率。而且,该方法在组装图结构时,各对象之间缺乏其中的内在逻辑关联,图数据的使用缺乏高效性。
6.针对相关技术中利用图数据组装图结构时占用较多存储空间的问题,目前还没有提出有效的解决方案。


技术实现要素:

7.在本实施例中提供了一种图数据存取方法、电子装置和存储介质,以解决相关技术中利用图数据组装图结构时占用较多存储空间的问题。
8.第一个方面,在本实施例中提供了一种图数据存取方法,包括:
9.获取待存储图数据的顶点对象和边对象,对所述顶点对象和所述边对象进行解析,得到所述顶点对象的顶点属性和所述边对象的边属性;
10.将所述顶点对象和所述边对象存储在内存空间的第一位置;
11.获取属性集合,根据所述顶点属性生成所述顶点对象对所述属性集合中相应属性对象的第一引用信息,并将所述第一引用信息写入所述顶点对象中,以及,根据所述边属性
生成所述边对象对所述属性集合中相应属性对象的第二引用信息,并将所述第二引用信息写入所述边对象中,其中,所述属性集合存储在所述内存空间的第二位置。
12.在其中一些实施例中,所述顶点属性和所述边属性包括键值对信息,获取属性集合包括:
13.根据所述键值对信息判断所述属性集合中是否存在目标属性对象;
14.若所述属性集合中不存在所述目标属性对象,则将所述目标属性对象写入所述属性集合中。
15.在其中一些实施例中,所述属性集合中的属性对象携带有属性标识,根据所述键值对信息判断所述属性集合中是否存在目标属性对象包括:
16.根据所述键值对信息生成所述目标属性对象的属性标识;
17.将所述目标属性对象的属性标识和所述属性集合中属性对象的属性标识进行比较,确定所述属性集合中是否存在所述目标属性对象;
18.若所述属性集合中存在和所述目标属性对象的属性标识相匹配的属性对象,则确定所述属性集合中存在所述目标属性对象;
19.若所述属性集合中不存在和所述目标属性对象的属性标识相匹配的属性对象,则确定所述属性集合中不存在所述目标属性对象。
20.在其中一些实施例中,根据所述顶点属性生成所述顶点对象对所述属性集合中相应属性对象的第一引用信息,以及,根据所述边属性生成所述边对象对所述属性集合中相应属性对象的第二引用信息包括:
21.根据所述顶点属性确定所述属性集合中相应属性对象的属性标识,根据该属性标识生成所述顶点对象对所述相应属性对象的第一引用信息;以及,
22.根据所述边属性确定所述属性集合中相应属性对象的属性标识,根据该属性标识生成所述边对象对所述相应属性对象的第二引用信息。
23.在其中一些实施例中,若所述属性集合中存在所述目标属性对象,所述方法还包括:
24.根据所述顶点属性生成所述顶点对象对所述属性集合中所述目标属性对象的第一引用信息,并将所述第一引用信息写入所述顶点对象中;和/或,
25.根据所述边属性生成所述边对象对所述属性集合中所述目标属性对象的第二引用信息,并将所述第二引用信息写入所述边对象中。
26.在其中一些实施例中,在将所述顶点对象和所述边对象存储在内存空间的第一位置之前,所述方法还包括:
27.对所述顶点对象进行解析,得到所述顶点对象的顶点信息,并将所述顶点信息写入所述顶点对象中,其中,所述顶点信息包括顶点标识和顶点标签,所述顶点标签用于标记所述顶点对象的类别;以及,
28.对所述边对象进行解析,得到所述边对象的边信息,并将所述边信息写入所述边对象中,其中,所述边信息包括边标识、边标签、起点标识和终点标识,所述边标签用于标记所述边对象的类别。
29.在其中一些实施例中,将所述顶点对象和所述边对象存储在内存空间的第一位置包括:将所述顶点标签和所述边标签存储为字典编码;以及,
30.所述属性集合中的属性对象携带有键值对信息,将所述属性集合存储在所述内存空间的第二位置包括:将所述属性对象携带的键信息存储为字典编码。
31.在其中一些实施例中,在将所述顶点对象和所述边对象存储在内存空间的第一位置之后,所述方法还包括:
32.在所述内存空间中创建哈希表,其中,所述哈希表中存储有对应于各所述顶点对象的顶点标识和边对象集合;
33.获取第一边对象携带的顶点标识,判断所述顶点标识是否存在于所述哈希表中;
34.若所述顶点标识存在于所述哈希表中,则将所述第一边对象写入所述哈希表;
35.若所述顶点标识不存在于所述哈希表中,则根据所述顶点标识和所述第一边对象新增边对象集合,并将新增的边对象集合存储至所述哈希表。
36.在其中一些实施例中,在确定所述顶点对象和所述边对象之间的对应关系,根据所述对应关系,将各所述顶点对象的顶点标识和对应的边对象进行关联存储之后,所述方法还包括:
37.获取所述哈希表;
38.在所述哈希表中查询和目标对象的顶点标识相匹配的边对象集合,并获取所述边对象集合中的边对象。
39.第二个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的图数据存取方法。
40.第三个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的图数据存取方法。
41.与相关技术相比,在本实施例中提供的图数据存取方法、电子装置和存储介质,通过获取待存储图数据的顶点对象和边对象,对顶点对象和边对象进行解析,得到顶点对象的顶点属性和边对象的边属性;将顶点对象和边对象存储在内存空间的第一位置;获取属性集合,根据顶点属性生成顶点对象对属性集合中相应属性对象的第一引用信息,并将第一引用信息写入顶点对象中,以及,根据边属性生成边对象对属性集合中相应属性对象的第二引用信息,并将第二引用信息写入边对象中,其中,属性集合存储在内存空间的第二位置,解决了相关技术中利用图数据组装图结构时占用较多存储空间的问题,改善了存储冗余情形,极大地提高了内存空间使用率。
42.本技术的一个或多个实施例的细节在以下附图和描述中提出,以使本技术的其他特征、目的和优点更加简明易懂。
附图说明
43.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
44.图1是相关技术中知识图谱的结构示意图;
45.图2是本技术一实施例的图数据存取方法的终端的硬件结构框图;
46.图3是本技术一实施例的图数据存取方法的流程图;
47.图4是本技术一实施例的将图数据组装成图结构的原理示意图;
48.图5是本技术一实施例的基于uml的图数据结构解析示意图;
49.图6是本技术一优选实施例的哈希表创建流程图。
具体实施方式
50.为更清楚地理解本技术的目的、技术方案和优点,下面结合附图和实施例,对本技术进行了描述和说明。
51.除另作定义外,本技术所涉及的技术术语或者科学术语应具有本技术所属技术领域具备一般技能的人所理解的一般含义。在本技术中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本技术中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本技术中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本技术中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本技术中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
52.在本技术的一个实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图2是本实施例的图数据存取方法的终端的硬件结构框图。如图2所示,终端可以包括一个或多个(图2中仅示出一个)处理器202和用于存储数据的存储器204,其中,处理器202可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置。上述终端还可以包括用于通信功能的传输设备206以及输入输出设备208。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图2中所示更多或者更少的组件,或者具有与图2所示出的不同配置。
53.存储器204可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的图数据存取方法对应的计算机程序,处理器202通过运行存储在存储器204内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
54.传输设备206用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备206包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备206可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
55.在将基于图数据库的原始数据解析成图数据交付到本地内存中时,可以采用本实施例提供的图数据存取方法,图3是本技术一实施例的图数据存取方法的流程图,如图3所
示,该流程包括如下步骤:
56.步骤s301,获取待存储图数据的顶点对象和边对象,对顶点对象和边对象进行解析,得到顶点对象的顶点属性和边对象的边属性。
57.在获取待存储图数据的顶点对象和边对象时,可以将本地内存连接外存的图数据库,从图数据库中获取原始数据,原始数据就是未经组装的顶点对象和边对象,这些原始数据需在内存空间进行组装,形成图结构以备上层业务所使用。其中,图数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。在本实施例中,顶点对象用于存储实体,边对象用于存储实体之间的关系,顶点属性用于表征实体的特征,边属性用于表征实体之间的关系的特征,顶点属性和边属性的具体表达方式可参考图1。
58.步骤s302,将顶点对象和边对象存储在内存空间的第一位置。
59.内存空间的第一位置可以进一步划分为第一单元和第二单元,以分别存储顶点对象和边对象。
60.步骤s303,获取属性集合,根据顶点属性生成顶点对象对属性集合中相应属性对象的第一引用信息,并将第一引用信息写入顶点对象中,以及,根据边属性生成边对象对属性集合中相应属性对象的第二引用信息,并将第二引用信息写入边对象中,其中,属性集合存储在内存空间的第二位置。
61.属性集合由多个属性对象构成,属性对象独立于顶点对象和边对象,单独存放在属性集合中,也就是内存空间的第二位置。属性对象用于存储实体的特征以及实体之间的关系的特征,例如,在图1中,可以将“字:玄德”作为一个属性对象,并将该属性对象存储于内存空间中。在本实施例中,当将图数据从外存迁移到内存时,根据顶点属性生成顶点对象对属性集合中相应属性对象的第一引用信息,以及根据边属性生成边对象对属性集合中相应属性对象的第二引用信息,即建立各对象对相应属性对象的引用关系。
62.在本实施例中,对象引用是指:对象的引用在某一时刻只可以有唯一指向(或null),对象本身可以同时被多个引用变量引用(或0个)。例如,java中新创建的对象被放在称为“堆”的系统存储区中。java中的对象都通过“对象引用”(object reference)来访问。在本实施例中,顶点对象和边对象通过在变量中持有某个属性对象,即实现对该属性对象的引用。
63.在上述步骤s301至s303中,将对象的属性从对象中抽离出来形成属性对象,并将属性对象、顶点对象和边对象分别存储于内存空间的不同位置,让顶点对象和边对象中的属性成为其对相应属性对象的引用,如此,拥有相同属性的对象共用一块内存空间,可以避免存储冗余情形。另外,从图数据的结构来看,属性是存储数据的核心结构,顶点对象和边对象的特征都是属性的值,因此,通过引用属性对象的方式实现对各对象的属性配置可以极大地提高内存空间使用率。
64.通过上述步骤,解决了相关技术中利用图数据组装图结构时占用较多存储空间的问题,改善了存储冗余情形,极大地提高了内存空间使用率。
65.在一些实施例中,顶点属性和边属性包括键值对信息,可通过如下方式获取属性集合。根据键值对信息判断属性集合中是否存在目标属性对象;若属性集合中不存在目标属性对象,则将目标属性对象写入属性集合中。
66.在本实施例中,在解析顶点对象和边对象的属性,将图数据库的顶点属性、边属性
迁移至内存空间中之前,先判断内存空间中是否存在相应的属性对象。例如在解析得到和对象相匹配的目标属性对象时,先判断内存空间中是否存在目标属性对象,若不存在,则在内存空间中为目标属性对象开辟存储空间,将目标属性对象存储至该内存空间中,即写入属性集合中,然后再添加相应对象对该目标属性对象的引用。
67.反之,若属性集合中存在目标属性对象,则根据顶点属性生成顶点对象对属性集合中目标属性对象的第一引用信息,并将第一引用信息写入顶点对象中;和/或,根据边属性生成边对象对属性集合中目标属性对象的第二引用信息,并将第二引用信息写入边对象中。
68.其中,属性集合中的属性对象携带有属性标识,在根据键值对信息判断属性集合中是否存在目标属性对象时,可以根据键值对信息生成目标属性对象的属性标识;将目标属性对象的属性标识和属性集合中属性对象的属性标识进行比较,确定属性集合中是否存在目标属性对象;若属性集合中存在和目标属性对象的属性标识相匹配的属性对象,则确定属性集合中存在目标属性对象;若属性集合中不存在和目标属性对象的属性标识相匹配的属性对象,则确定属性集合中不存在目标属性对象。
69.在一些实施例中,在解析图数据库中跟属性相关的原始数据时,可以采用信息摘要算法将属性的键和值进行压缩,得到固定长度的字符串,即属性标识,通过属性标识判断属性集合中是否已经存在目标属性对象。若已存在,则直接添加相应对象对目标属性对象的引用;若不存在,则在内存空间的第二位置新建目标属性对象,并添加相应对象对目标属性对象的引用。
70.相应地,在一些实施例中,可以根据顶点属性确定属性集合中相应属性对象的属性标识,根据该属性标识生成顶点对象对相应属性对象的第一引用信息;以及,根据边属性确定属性集合中相应属性对象的属性标识,根据该属性标识生成边对象对相应属性对象的第二引用信息。
71.在本实施例中,顶点属性和边属性包括键值对信息,可以采用信息摘要算法将属性的键和值进行压缩,得到固定长度的字符串,即属性标识,根据属性标识确定所要引用的属性对象和属性对象,即生成引用信息。
72.图4是本技术一实施例的将图数据组装成图结构的原理示意图,如图4所示,首先,内存空间连接外存的图数据库,根据查询语句返回原始数据,原始数据包括顶点对象和边对象;遍历解析原始数据,得到顶点信息和顶点属性,以及得到边信息和边属性;获取属性集合,根据顶点属性添加顶点对象对属性集合中相应属性对象的引用,以及根据边属性添加边对象对属性集合中相应属性对象的引用;根据引用了属性对象后的顶点对象和边对象,组装图结构。
73.在一些实施例中,在将顶点对象和边对象存储在内存空间的第一位置之前,还将对顶点对象进行解析,得到顶点对象的顶点信息,并将顶点信息写入顶点对象中,其中,顶点信息包括顶点标识和顶点标签,顶点标签用于标记顶点对象的类别;以及,对边对象进行解析,得到边对象的边信息,并将边信息写入边对象中,其中,边信息包括边标识、边标签、起点标识和终点标识,边标签用于标记边对象的类别。
74.采用本实施例的图数据存取方法,可以得到较为精简、通用的图数据结构,具体如下所示:
75.graphproperty:属性对象,用于存储实体的特征或者实体之间的关系的特征,以键值对形式存储,graphproperty={pid,键,值}。
76.graphvertex:顶点对象,用于存储实体,graphvertex={vid,标签,属性集合}。
77.graphedge:边对象,用于连接顶点对象,存储实体之间的关系,graphedge={eid,标签,起点vid,终点vid,属性集合}。
78.graphresult:图,是指顶点对象和边对象的集合,graphresult={顶点集合,边集合}。
79.与相关技术相比,本实施例的图数据结构具备如下特点:
80.属性对象、顶点对象、边对象都是分别存储,且都有唯一标识,在解析的时候可以通过判断唯一标识是否相等来判断对象是否相等。
81.边对象只包含了对点的唯一标识而不存储对点的其他数据,精简了结构,减少了存储空间。对点代表一条边上的起点和终点。
82.顶点对象、边对象都有标签作为分类的类别,比如将顶点对象“刘备”、“曹操”的标签均设置为“person”,将顶点对象“汉中之战”的标签设置为“war”,将边对象a的标签设置为“relation”,将边对象b的标签设置为“initiative”,将边对象c的标签设置为“passiveness”。
83.在一些实施例中,在将顶点对象和边对象存储在内存空间的第一位置时,可以将顶点标签和边标签存储为字典编码。以及,属性集合中的属性对象携带有键值对信息,在将属性集合存储在内存空间的第二位置时,可以将属性对象携带的键信息存储为字典编码。如此,在缩减存储空间的同时,可以增加系统的扩展性。
84.字典编码是描述数据的信息,用来存储有关数据的来源,这些数据可以是一些不经常变化的静态数据、元数据,比如性别、国籍、民族等数据。例如,在将标签保存为字典编码后,在解析的时候可以根据需要翻译为对应的字典值,比如将“person”翻译为“人”,将“initiative”翻译为“攻击方”。同样地,对于属性对象中的键值对,例如“name:刘备”,“姓名”的键为“name”,在将该属性对象中的键也保存为字典编码后,在解析的时候即可将“name”翻译为“姓名”。如此,可以减少存储国际化的考虑。
85.图5是本技术一实施例的基于uml的图数据结构解析示意图,如图5所示,在将图数据从外存的图数据库存储至内存空间之后,可以用uml(unified modeling language,统一建模语言)表达内存空间中图数据结构。
86.graphproperty代表属性对象,属性对象携带有键值对key-value。
87.element代表元素对象,元素对象用于抽象出通用的字段信息,作为顶点对象、边对象的抽象表达,元素对象携带有元素标识(id)、标签(label)、属性集合(properties)。
88.graphvertex代表顶点对象,顶点对象继承元素对象,可以是继承了元素对象的字段信息,如id、label。
89.graphedge代表边对象,边对象继承元素对象,除了继承父类的基本字段信息外,还有自身的一些属性,如起点标识(from)、终点标识(to)。
90.graphresult代表图,图包含了泛型化的顶点对象、边对象集合,本实施的集合优选采用set,有序且不重复,在满足可具备良好的拓展性同时可满足有序的要求。
91.相关技术中,在将图数据库的顶点对象和边对象存储至内存空间中之后,若要获
取和某个顶点对象关联的所有边对象,一般做法是遍历边集合,判断每个边对象的起点或者终点是否等于查询的该顶点对象,如果满足此条件,则这个边对象属于查询的点,直到循环结束。若需要查询的顶点对象的数量为m,边对象的集合数量是n,则查询m个顶点对象的对应边对象的时间复杂度为o(m
×
n)。
92.为解决该问题,在一些实施例中,在将顶点对象和边对象存储在内存空间的第一位置之后,还将在内存空间中创建哈希表,其中,哈希表中存储有对应于各顶点对象的顶点标识和边对象集合;获取第一边对象携带的顶点标识,判断顶点标识是否存在于哈希表中;若顶点标识存在于哈希表中,则将第一边对象写入哈希表;若顶点标识不存在于哈希表中,则根据顶点标识和第一边对象新增边对象集合,并将新增的边对象集合存储至哈希表。
93.在本实施例中,通过确定顶点对象和边对象之间的对应关系,根据对应关系,将各顶点对象的顶点标识和对应的边对象进行关联,并将这种关联关系存储至哈希表。如此,在需要查询顶点对象的所有对应边对象时,就可以通过获取哈希表,在哈希表中查询和目标对象的顶点标识相匹配的边对象集合,并获取边对象集合中的边对象。
94.图6是本技术一优选实施例的哈希表创建流程图,如图6所示,该流程包括如下步骤:
95.步骤s61,初始化一个空的哈希表,格式为{vid,边集合}。
96.步骤s62,获取原始边集合。
97.步骤s63,获取第一边对象。
98.步骤s64,获取起点标识vid。
99.步骤s65,判断起点标识vid是否存在于哈希表;若是,则执行步骤s69;若否,则执行步骤s66。
100.步骤s66,初始化一个空的边集合,通过put{vid,set}方式将该边集合加入哈希表中,并将第一边对象加入该空的边集合中。
101.步骤s67,获取终点标识vid。
102.步骤s68,判断终点标识vid是否存在于哈希表;若是,则执行步骤s69;若否,则执行步骤s66。
103.步骤s69,将第一边对象加入对应于起点标识vid或者终点标识vid的边集合set中。
104.需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。例如,步骤s64和步骤s67不分先后,顺序可以互换。
105.在本优选实施例中,通过初始化一个格式为{vid,边集合}的空哈希表,用来存储顶点对象的vid和对应的边集合,将最终返回的数据存储在该哈希表中。由于一个顶点对象可以对应多个边对象,包括出边和入边,而利用哈希表的结构可以更快获取数据,时间复杂度为o(1)。在遍历原始边集合时,找出每个边对象,即第一边对象,然后对其做处理,获取第一边对象的起点标识vid和终点标识vid,分别判断起点标识vid和终点标识vid是否包含在哈希表中。如果起点标识vid和终点标识vid在哈希表中没有出现过,说明当前的起点标识vid和终点标识vid对应的边集合还未初始化,此时应该初始化一个边集合,并将当前的第
一边对象加入到该边集合中。如果起点标识vid或者终点标识vid在哈希表中已经出现过,只需要将当前的第一边对象直接加入到该边集合中即可。当将原始边集合所有的边对象遍历完,循环结束。
106.其中,最终返回的哈希表包含了所有的顶标识vid和对应的边集合,在此过程中,包含n个边对象的图所构造的哈希表的时间复杂度为o(n),外层只需要通过哈希表获取对应顶点对象的边集合即可,这个复杂度为o(1),对于m个顶点对象获取的时间复杂度为o(m),获取m个顶点对象关联边对象的时间复杂度为o(m n)。如此,在相同的条件下,相比于相关技术中时间复杂度为o(m
×
n)的查询方法,本实施例的查询方法大幅度提升了查询性能。
107.在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
108.可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
109.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
110.s1,获取待存储图数据的顶点对象和边对象,对顶点对象和边对象进行解析,得到顶点对象的顶点属性和边对象的边属性。
111.s2,将顶点对象和边对象存储在内存空间的第一位置。
112.s3,获取属性集合,根据顶点属性生成顶点对象对属性集合中相应属性对象的第一引用信息,并将第一引用信息写入顶点对象中,以及,根据边属性生成边对象对属性集合中相应属性对象的第二引用信息,并将第二引用信息写入边对象中,其中,属性集合存储在内存空间的第二位置。
113.需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
114.此外,结合上述实施例中提供的图数据存取方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种图数据存取方法。
115.应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本技术提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本技术保护范围。
116.显然,附图只是本技术的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本技术适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本技术披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本技术公开的内容不足。
[0117]“实施例”一词在本技术中指的是结合实施例描述的具体特征、结构或特性可以包括在本技术的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本技术中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
[0118]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献