一种遍历数据的方法及终端技术

技术编号:22329774 阅读:20 留言:0更新日期:2019-10-19 12:12
本发明专利技术公开一种遍历数据的方法及终端,自定义一泛型的枚举器,并将系统默认的枚举器的获取接口私有化,将所述泛型的枚举器的获取接口公开,在遍历List集合中的数据时,确定所遍历到的数据的类型,设置返回的泛型的枚举器的类型为与所述遍历到的数据相同的类型,通过将系统默认的枚举器的获取接口私有化,将所述泛型的枚举器的获取接口公开,保证返回的是自定义的泛型的枚举器,并且由于泛型的枚举器的类型是可以在返回时再根据遍历到的数据的类型设置,指定了类型后枚举器的类型与遍历到的数据类型相同,就不需要进行Box装箱操作,也就不会产生GC,从而提高了系统性能。

A method of traversing data and terminal

【技术实现步骤摘要】
一种遍历数据的方法及终端
本专利技术涉及软件开发领域,尤其涉及一种遍历数据的方法及终端。
技术介绍
在Unity3D的开发过程中,无法避免需要使用List集合存储数据,使用遍历List获得每一个数据。而Unity系统的泛型List存在着产生内存垃圾的问题,当List存储的是值类型时,由于.net的List集合使用的系统默认枚举器返回的是object类型,它在finally中回收枚举器时就需要进行装箱Box操作,也就是将值类型转换为object类型,这样就产生了内存垃圾,从而导致内存垃圾收集GC,影响程序性能。
技术实现思路
本专利技术所要解决的技术问题是:提高一种遍历数据的方法及终端,能够避免在使用List遍历数据时,产生GC。为了解决上述技术问题,本专利技术采用的一种技术方案为:一种遍历数据的方法,包括步骤:S1、自定义一泛型的枚举器,并将系统默认的枚举器的获取接口私有化,将所述泛型的枚举器的获取接口公开;S2、确定遍历的List集合中的数据的类型,设置返回的所述泛型的枚举器的类型为与遍历的List集合中的数据相同的类型。为了解决上述技术问题,本专利技术采用的另一种技术方案为:一种遍历数据的终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:S1、自定义一泛型的枚举器,并将系统默认的枚举器的获取接口私有化,将所述泛型的枚举器的获取接口公开;S2、确定遍历的List集合中的数据的类型,设置返回的所述泛型的枚举器的类型为与遍历的List集合中的数据相同的类型。本专利技术的有益效果在于:自定义一泛型的枚举器,并将系统默认的枚举器的获取接口私有化,将所述泛型的枚举器的获取接口公开,在遍历List集合中的数据时,确定所遍历到的数据的类型,设置返回的泛型的枚举器的类型为与所述遍历到的数据相同的类型,通过将系统默认的枚举器的获取接口私有化,将所述泛型的枚举器的获取接口公开,保证返回的是自定义的泛型的枚举器,并且由于泛型的枚举器的类型是可以在返回时再根据遍历到的数据的类型设置,指定了类型后枚举器的类型与遍历到的数据类型相同,就不需要进行Box装箱操作,也就不会产生GC,从而提高了系统性能。附图说明图1为本专利技术实施例的一种遍历数据的方法流程图;图2为本专利技术实施例的一种遍历数据的终端的结构示意图;图3为本专利技术实施例建立的一种数据结构图;图4为本专利技术实施例建立的一种数据结构图;图5为本专利技术实施例的用系统默认返回的枚举器的仿真结果图;图6为本专利技术实施例的用自定义的泛型的枚举器的仿真结果图;标号说明:1、一种遍历数据的终端;2、存储器;3、处理器。具体实施方式为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。本专利技术最关键的构思在于:自定义一泛型的枚举器,并将系统默认的枚举器的获取接口私有化,将所述泛型的枚举器的获取接口公开,设置返回的枚举器的类型与遍历到的数据的类型相同。请参照图1,一种遍历数据的方法,包括步骤:S1、自定义一泛型的枚举器,并将系统默认的枚举器的获取接口私有化,将所述泛型的枚举器的获取接口公开;S2、确定遍历的List集合中的数据的类型,设置返回的所述泛型的枚举器的类型为与遍历的List集合中的数据相同的类型。从上述描述可知,本专利技术的有益效果在于:自定义一泛型的枚举器,并将系统默认的枚举器的获取接口私有化,将所述泛型的枚举器的获取接口公开,在遍历List集合中的数据时,确定所遍历到的数据的类型,设置返回的泛型的枚举器的类型为与所述遍历到的数据相同的类型,通过将系统默认的枚举器的获取接口私有化,将所述泛型的枚举器的获取接口公开,保证返回的是自定义的泛型的枚举器,并且由于泛型的枚举器的类型是可以在返回时再根据遍历到的数据的类型设置,指定了类型后枚举器的类型与遍历到的数据类型相同,就不需要进行Box装箱操作,也就不会产生GC,从而提高了系统性能。进一步的,所述步骤S2中设置返回的所述泛型的枚举器的类型为与遍历的List集合中的数据相同的类型包括:当遍历的List集合中的数据的类型为值类型时,设置返回的所述泛型的枚举器的类型为值类型。由上述描述可知,由于系统默认的枚举器返回的是object类型,所以如果当遍历到的数据类型为值类型时,若采用系统默认的枚举器,则将会执行Box操作,需要将值类型转化为object类型,而本专利技术通过设置返回的泛型的枚举器的类型为值类别,保证所述枚举器的类型与遍历到的数据类型相同,避免了装箱Box操作。进一步的,所述步骤S2中设置返回的所述泛型的枚举器的类型为与遍历的List集合中的数据相同的类型包括:设置返回的所述泛型的枚举器的Current属性为与遍历的List集合中的数据相同的类型,所述Current属性指示了返回的所述泛型的枚举器的类型。由上述描述可知,通过对枚举器的Current属性进行设置实现对泛型的枚举器的类型的指定,方便快捷。进一步的,还包括步骤:自定义两个数组,一个数组存储自定义的泛型的枚举器,另一个数组存储对应所述自定义的泛型的枚举器的状态;在遍历数据时,根据存储的自定义的泛型的枚举器状态确定是否有空闲的自定义的泛型的枚举器,若是,则选择并返回一空闲的自定义的泛型的枚举器;若否,则新建若干个自定义的泛型的枚举器,并更新所述两个数组,选择并返回一新建的自定义的泛型的枚举器。由上述描述可知,通过两个可变大小的数组分别存储枚举器及枚举器对应的状态,可以方便对枚举器的管理,进行自适应的增加和动态的调整,避免对枚举器的回收,也就避免了GC的产生。进一步的,所述更新所述两个数组包括:根据新建的自定义的泛型的枚举器的个数增加数组的长度,并将所述新建的自定义的泛型的枚举器和对应的状态存储至相应的数组。由上述描述可知,如果新建了枚举器,则对数组进行同步的更新,保证一致性,避免出错。请参照图2,一种遍历数据的终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:S1、自定义一泛型的枚举器,并将系统默认的枚举器的获取接口私有化,将所述泛型的枚举器的获取接口公开;S2、确定遍历的List集合中的数据的类型,设置返回的所述泛型的枚举器的类型为与遍历的List集合中的数据相同的类型。从上述描述可知,本专利技术的有益效果在于:自定义一泛型的枚举器,并将系统默认的枚举器的获取接口私有化,将所述泛型的枚举器的获取接口公开,在遍历List集合中的数据时,确定所遍历到的数据的类型,设置返回的泛型的枚举器的类型为与所述遍历到的数据相同的类型,通过将系统默认的枚举器的获取接口私有化,将所述泛型的枚举器的获取接口公开,保证返回的是自定义的泛型的枚举器,并且由于泛型的枚举器的类型是可以在返回时再根据遍历到的数据的类型设置,指定了类型后枚举器的类型与遍历到的数据类型相同,就不需要进行Box装箱操作,也就不会产生GC,从而提高了系统性能。进一步的,所述步骤S2中设置返回的所述泛型的枚举器的类型为与遍历的List集合中的数据相同的类型包括:当遍历的List集合中的数据的类型为值类型时,设置返回的所述泛型的枚举器的类型为值类型。由上述描述可知,由于系统默认的枚举器返本文档来自技高网
...

【技术保护点】
1.一种遍历数据的方法,其特征在于,包括步骤:S1、自定义一泛型的枚举器,并将系统默认的枚举器的获取接口私有化,将所述泛型的枚举器的获取接口公开;S2、确定遍历的List集合中的数据的类型,设置返回的所述泛型的枚举器的类型为与遍历的List集合中的数据相同的类型。

【技术特征摘要】
1.一种遍历数据的方法,其特征在于,包括步骤:S1、自定义一泛型的枚举器,并将系统默认的枚举器的获取接口私有化,将所述泛型的枚举器的获取接口公开;S2、确定遍历的List集合中的数据的类型,设置返回的所述泛型的枚举器的类型为与遍历的List集合中的数据相同的类型。2.根据权利要求1所述的一种遍历数据的方法,其特征在于,所述步骤S2中设置返回的所述泛型的枚举器的类型为与遍历的List集合中的数据相同的类型包括:当遍历的List集合中的数据的类型为值类型时,设置返回的所述泛型的枚举器的类型为值类型。3.根据权利要求1所述的一种遍历数据的方法,其特征在于,所述步骤S2中设置返回的所述泛型的枚举器的类型为与遍历的List集合中的数据相同的类型包括:设置返回的所述泛型的枚举器的Current属性为与遍历的List集合中的数据相同的类型,所述Current属性指示了返回的所述泛型的枚举器的类型。4.根据权利要求1所述的一种遍历数据的方法,其特征在于,还包括步骤:自定义两个数组,一个数组存储自定义的泛型的枚举器,另一个数组存储对应所述自定义的泛型的枚举器的状态;在遍历数据时,根据存储的自定义的泛型的枚举器状态确定是否有空闲的自定义的泛型的枚举器,若是,则选择并返回一空闲的自定义的泛型的枚举器;若否,则新建若干个自定义的泛型的枚举器,并更新所述两个数组,选择并返回一新建的自定义的泛型的枚举器。5.根据权利要求4所述的一种遍历数据的方法,其特征在于,所述更新所述两个数组包括:根据新建的自定义的泛型的枚举器的个数增加数组的长度,并将所述新建的自定义的泛型的枚举器和对应的状态存储至相应的数组。6.一种遍历数据的终端,包括存储器、处理器以及存储在所述...

【专利技术属性】
技术研发人员:刘德建徐勇光林琛
申请(专利权)人:福建省天奕网络科技有限公司
类型:发明
国别省市:福建,35

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

1