The embodiment of the present invention discloses an array regularization method, device, terminal and readable medium, in which the method includes: determining the array length of the migration array and backup array according to the residual memory of the received regularization instruction, defining the migration array and backup array, polling the target array, and storing the scanned non-empty data information into the migration array; Data information in the array is migrated to the linked list object and backed up in the backup array to improve disaster tolerance; when the scan is finished, the data information in the acquired linked list object is stored in the temporary array; when all data information in the linked list object is stored in the temporary array, the data information of the temporary array is returned to the target array. The embodiment of the present invention provides an array regularization method, device, terminal and readable medium, which realizes array regularization and improves the efficiency of array regularization and disaster tolerance of the regularization process.
【技术实现步骤摘要】
一种数组规整方法、装置、终端及可读介质
本专利技术实施例涉及计算机技术,尤其涉及一种数组规整方法、装置、终端及可读介质。
技术介绍
当Android终端中数组内数据为有序数据时,常需要将数组进行规整化处理,以方便对有序数据进行读取等操作。其中,规整化处理可以理解为将有序数据按数组的索引序号为0、1、2...n的顺序依次存储至数组,保证有序数据间没有空数据,且放置在数组前端,空余位置位于数组后端的处理操作。目前,常用的数组规整方法为,对数组内数据进行一一迁移。这种大批量数据一一迁移的操作耗时较长,速度较慢,从而导致数组规整效率较低。
技术实现思路
有鉴于此,本专利技术实施例提供了一种数组规整方法、装置、终端及可读介质,实现了数组规整,提高了数组规整效率及规整过程容灾性。第一方面,本专利技术实施例提供了一种数组规整方法,包括:接收规整指令,根据所述规整指令确定剩余内存,根据所述剩余内存以及目标数组的数组长度确定迁移数组的数组长度以及备份数组的数组长度,根据迁移数组的数组长度定义迁移数组,并根据备份数组的数组长度定义备份数组;对目标数组的起始位置至终止位置依次进行扫描,获取扫描位置的数据信息,当判断所述数据信息不为空时,将所述数据信息存储至迁移数组中;根据目标数组的扫描进度以及迁移数组的存储状态,读取迁移数组内数据信息,将迁移数组内数据信息依次替换链表对象中的预填充数据信息并存储至备份数组中,其中,当替换链表对象中的预填充数据信息过程出现写入异常时,根据存储至备份数组中的数据进行异常修复;当迁移数组内数据信息读取完毕时,将迁移数组内数据信息清空,并将目标数组内已完成 ...
【技术保护点】
1.一种数组规整方法,其特征在于,包括:接收规整指令,根据所述规整指令确定剩余内存,根据所述剩余内存以及目标数组的数组长度确定迁移数组的数组长度以及备份数组的数组长度,根据迁移数组的数组长度定义迁移数组,并根据备份数组的数组长度定义备份数组;对目标数组的起始位置至终止位置依次进行扫描,获取扫描位置的数据信息,当判断所述数据信息不为空时,将所述数据信息存储至迁移数组中;根据目标数组的扫描进度以及迁移数组的存储状态,读取迁移数组内数据信息,将迁移数组内数据信息依次替换链表对象中的预填充数据信息并存储至备份数组中,其中,当替换链表对象中的预填充数据信息过程出现写入异常时,根据存储至备份数组中的数据进行异常修复;当迁移数组内数据信息读取完毕时,将迁移数组内数据信息清空,并将目标数组内已完成扫描的扫描位置的数据信息清除;当目标数组扫描结束时,依次获取链表对象中的数据信息,并将获取到的链表对象中的数据信息存储至临时数组中,其中所述临时数组的数组长度与所述目标数组的数组长度相同;当链表对象中全部数据信息存储至临时数组中时,将临时数组的数据信息回传至目标组数中,并在数据信息回传结束时将临时数组的数据信 ...
【技术特征摘要】
1.一种数组规整方法,其特征在于,包括:接收规整指令,根据所述规整指令确定剩余内存,根据所述剩余内存以及目标数组的数组长度确定迁移数组的数组长度以及备份数组的数组长度,根据迁移数组的数组长度定义迁移数组,并根据备份数组的数组长度定义备份数组;对目标数组的起始位置至终止位置依次进行扫描,获取扫描位置的数据信息,当判断所述数据信息不为空时,将所述数据信息存储至迁移数组中;根据目标数组的扫描进度以及迁移数组的存储状态,读取迁移数组内数据信息,将迁移数组内数据信息依次替换链表对象中的预填充数据信息并存储至备份数组中,其中,当替换链表对象中的预填充数据信息过程出现写入异常时,根据存储至备份数组中的数据进行异常修复;当迁移数组内数据信息读取完毕时,将迁移数组内数据信息清空,并将目标数组内已完成扫描的扫描位置的数据信息清除;当目标数组扫描结束时,依次获取链表对象中的数据信息,并将获取到的链表对象中的数据信息存储至临时数组中,其中所述临时数组的数组长度与所述目标数组的数组长度相同;当链表对象中全部数据信息存储至临时数组中时,将临时数组的数据信息回传至目标组数中,并在数据信息回传结束时将临时数组的数据信息清空。2.根据权利要求1所述的方法,其特征在于,所述根据所述规整指令确定剩余内存,包括:根据所述规整指令获取ActivityManager对象,调用ActivityManager对象的内存信息对象获取方法获取内存信息对象;调用内存信息对象的可用内存获取方法获取可用内存,调用内存信息对象的总内存获取方法获取总内存,根据可用内存以及总内存确定剩余内存。3.根据权利要求1所述的方法,其特征在于,所述根据所述剩余内存以及目标数组的数组长度确定迁移数组的数组长度以及备份数组的数组长度,包括:当剩余内存大于等于内存阈值时,将目标数组的数组长度作为迁移数组的数组长度以及备份数组的数组长度;当剩余内存小于内存阈值时,将所述剩余内存的第一预设比例的内存空间作为迁移数组的数组长度,将所述剩余内存的第二预设比例的内存空间作为备份数组的数组长度。4.根据权利要求1所述的方法,其特征在于,所述根据目标数组的扫描进度以及迁移数组的存储状态,读取迁移数组内数据信息,将迁移数组内数据信息依次替换链表对象中的预填充数据信息并存储至备份数组中,包括:当迁移数组存储满时,读取迁移数组内数据信息,调用链表对象的替换方法将迁移数组内数据信息依次替换链表对象中的预填充数据信息,并将替换链表对象中的预填充数据信息的迁移数组内数据信息存储至备份数组中;当迁移数组未存储满,目标数组扫描结束时,读取迁移数组内数据信息,调用链表对象的替换方法将迁移数组内数据信息依次替换链表对象中的预填充数据信息,并将替换链表对象中的预填充数据信息的迁移数组内数据信息存储至备份数组中。5.根据权利要求1所述的方法,其特征在于,所述当替换链表对象中的预填充数据信息过程出现写入异常时,根据存储至备份数组中的数据进...
【专利技术属性】
技术研发人员:张磊,
申请(专利权)人:武汉斗鱼网络科技有限公司,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。