The application discloses a method for constructing an array, a device, an electronic device, an array inquiry method, a device and another electronic device. Among them, the method of constructing the array consists of determining the bits required to store the values of each field according to the values of the fields to be stored; and setting up an array of bits as the capacity of the array elements; storing the values of each field into the array element of the array. By using the above method, the capacity of the array elements in the bitmap array is expanded to expand the capacity of the array elements in the array, and the capacity of the conventional array elements is extended from one bit bit to the bit digits of the maximum memory space occupied by the key value, and the number of array elements after the extended capacity is created as a unit. Group, extended use of the use of bitmap array query scenario, which is relative to the hash table query, no hash value function calculation, nor the hash value conflict processing, only need O (1) time complexity, high query efficiency.
【技术实现步骤摘要】
一种数组构建、数组查询的方法、装置及电子设备
本申请涉及数据处理
,具体涉及一种数组构建的方法以及一种数组查询的方法;本申请同时涉及一种数组构建的装置、一种电子设备、一种数组查询的装置以及另一种电子设备。
技术介绍
随着计算机信息技术的快速发展,越来越多的用户对数据的存储和查询提出了更高的要求。目前在大量数据信息中进行特定数据元素的查询时,常使用bitmap(位图)数据结构实现快速查询以及存储数据。bitmap数据结构以key-value(键值对)的数据存储都是基于一个字段作为key,将bitmap中每一个bit位来表示一个key对应的value,key不单独占用存储空间,通过在bitmap中的偏移bit来表示。由于bitmap是使用每一个bit位单独存放value,所以value的值为只能为0或1,例如:用数字表示的用户ID时,key可以表示为int类型,而且value只有两个值可以表示为用户在线或不在线,此时使用bitmap数组来查询非常高效。而当value为字符或字符串类型,不能使用数值类型来表达时,就无法使用bitmap数据结构来查询数据元素,此时常使用hashtable(hash表)来提高查询效率。使用hash表来进行查询时,在数据元素的数目较大的情况下,由于对key进行hash值计算时,计算出的hash值可能会存在冲突,在hash值冲突以及hash桶遍历都需要一些计算资源,即使增加表项容量,也并不能改善冲突率,同时也增加了内存消耗。由此可见,在现有的快速查询方案下,如果使用bitmap数据结构来查询数据元素,则要求value只能包含0或1 ...
【技术保护点】
1.一种数组构建的方法,其特征在于,包括:根据待存储的各字段的取值,确定能存储各字段的取值所需的比特位数;将所述比特位数作为数组元素的容量建立数组;将各字段的取值存储到所述数组的数组元素内。
【技术特征摘要】
1.一种数组构建的方法,其特征在于,包括:根据待存储的各字段的取值,确定能存储各字段的取值所需的比特位数;将所述比特位数作为数组元素的容量建立数组;将各字段的取值存储到所述数组的数组元素内。2.根据权利要求1所述的数组构建的方法,其特征在于,所述字段,包括:键值对。3.根据权利要求2所述的数组构建的方法,其特征在于,所述根据待存储的各字段的取值,确定能存储各字段的取值所需的比特位数,包括:根据待存储的各键值对的键值,确定存储最大键值占用的比特位数;或者根据待存储的各键值对预设的键值容量,确定所述键值容量占用的比特位数。4.根据权利要求3所述的数组构建的方法,其特征在于,所述将所述比特位数作为数组元素的容量建立数组时,包括:按照所述数组元素在所述数组内的偏移位置,为所述数组元素设置下标。5.根据权利要求4所述的数组构建的方法,其特征在于,所述将各字段的取值存储到所述数组的数组元素内,包括:将各键值对的键值存储到所述数组中下标与各键值对的键名相对应的数组元素内。6.根据权利要求2所述的数组构建的方法,其特征在于,若所述键值对的键值类型为文本型时,则为所述键值创建键值映射数组;所述键值映射数组用于存储各键值对的键值。7.根据权利要求6所述的数组构建的方法,其特征在于,通过键值映射数组实现数组的构建,需要采取以下步骤:将各键值对的键值,与存储所述键值的键值映射数组的数组元素的下标,建立映射关系;在所述根据待存储的各字段的取值的步骤中,所述待存储的各键值对的键值为:存储所述键值的键值映射数组的数组元素的下标。8.根据权利要求2所述的数组构建的方法,其特征在于,若所述键值对的键名类型为文本型时,则为所述键名创建键名映射数组;所述键名映射数组用于存储各键值对的键名。9.根据权利要求8所述的数组构建的方法,其特征在于,通过键名映射数组实现数组的构建,需要采取以下步骤:将各键值对的键名,与存储所述键名的键名映射数组的数组元素的下标,建立映射关系;在所述将各字段的取值存储到所述数组的数组元素内的步骤中,包括:将各键值对的键值存储到所述数组中下标与各键值对的键名相对应的数组元素内;所述各键值对的键名为:存储所述键名的键名映射数组的数组元素的下标。10.根据权利要求1-10任意一项所述的数组构建的方法,其特征在于,所述数组为bitmap数组。11.一种数组构建的装置,其特征在于,包括:比特位确定单元,用于根据待存储的各字段的取值,确定能存储各字段的取值所需的比特位数;数组建立单元,用于将所述比特位数作为数组元素的容量建立数组;...
【专利技术属性】
技术研发人员:代兵,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。