一种基于Java Set集合实现的算法优化方法技术

技术编号:20588251 阅读:36 留言:0更新日期:2019-03-16 06:57
本发明专利技术涉及JAVA技术领域,具体涉及一种基于Java Set集合实现的算法优化方法,包括构造set集合并构造set集合中节点的内部类、通过所述内部类构造对象实体的内部接口、在所述内部接口设置存放集合的实际元素、所述内部接口设置所述实际元素的属性值、所述内部接口提供所述实际元素的获取方法、设置方法、比较方法、哈希值获取、构造哈希表、在所述哈希表内存储所述节点的对象、进行元素比较、在set集合的分支下单独再建集合、所述集合通过布隆过滤器进行大量字符串去重。本发明专利技术摒弃通过Map实现Set的方法,独立设计完成Set集合元素去重、存储方法,提高java代码的运行效率,降低java源码模块耦合度;单独实现大量字符串去重方法,降低内存使用。

An Algorithmic Optimization Method Based on Java Set Set Set Set Implementation

The invention relates to the technical field of JAVA, in particular to an algorithm optimization method based on Java Set set set set set set set implementation, including constructing set set set set set set set set set and internal classes of nodes in set set set set set set set set set set, constructing internal interfaces of object entities through said internal classes, setting actual elements of storage set in said internal interface, setting attribute values of said actual elements in said internal interface, and said internal classes. The interface provides the acquisition method, setting method, comparison method, hash value acquisition, construction hash table, storage of the node objects in the hash table, element comparison, separate reconstruction of the set under the branch of the set set set set set, and large number of string de-duplication of the set through the Bloom filter. The invention abandons the method of realizing Set by Map, designs and completes the method of de-duplication and storage of Set set elements independently, improves the running efficiency of Java code, reduces the coupling degree of Java source code module, realizes a large number of string de-duplication methods separately, and reduces memory usage.

【技术实现步骤摘要】
一种基于JavaSet集合实现的算法优化方法
本专利技术涉及JAVA
,具体涉及一种基于JavaSet集合实现的算法优化方法。
技术介绍
Java是当前软件系统研发最热们的编程语言之一,使用者十分庞大,JavaSet是java中一种单元素集合,其特点就是元素惟一性。HashSet、inkedHashSet、TreeSet分别是三种Set的具体实现,其中HashSet存储去重方式是通过HashMap实现,TreeSet是通过TreeMap实现,LinkedHashSet是通过LinkedHashMap实现的。JavaSet并没有针对于大量的字符元素去重工作时做相应的实际处理。JavaSet是java中一种单元素集合,其特点就是元素惟一性。HashSet、LinkedHashSet、TreeSet分别是三种Set的具体实现,但它们却都是通过Map进行元素去重、存储等操作,这使java两个顶级的接口之间关系错综复杂,而且在做大量的字符元素去重工作时,目前的Set时间效率和空间效率都不是很好,特别是在去重字符串的数量级达到百万以上,会浪费很多内存空间。
技术实现思路
本专利技术的目的在于克服现有技术中存在的问题,提供一种基于JavaSet集合实现的算法优化方法,它可以实现独立设计完成Set集合元素去重、存储方法,提高java代码的运行效率,降低java源码模块耦合度;单独实现大量字符串去重方法,降低内存使用。为实现上述技术目的,达到上述技术效果,本专利技术是通过以下技术方案实现的:一种基于JavaSet集合实现的算法优化方法,包括如下步骤:步骤1、构造set集合并构造set集合中节点的内部类;步骤2、通过所述内部类构造对象实体的内部接口;步骤3、在所述内部接口设置存放集合的实际元素;步骤4、所述内部接口设置所述实际元素的属性值;步骤5、所述内部接口提供所述实际元素的获取方法、设置方法、比较方法、哈希值获取;步骤6、构造哈希表;步骤7、在所述哈希表内存储所述节点的对象;步骤8、进行元素比较;步骤9、在set集合的分支下单独再建集合;步骤10、所述集合通过布隆过滤器进行大量字符串去重。进一步地,所述步骤7在所述哈希表内存储所述节点的对象时,所述哈希表通过哈希值从大到小或者从小到达的顺序将所述节点的对象进行存储。进一步地,所述步骤8进行元素比较时,通过二分法查找的方式进行对比。进一步地,所述对比策略为先通过元素地址比较,再通过元素值比较。本专利技术的有益效果:摒弃通过Map实现Set的方法,独立设计完成Set集合元素去重、存储方法,提高java代码的运行效率,降低java源码模块耦合度;单独实现大量字符串去重方法,降低内存使用。附图说明图1为本专利技术一种基于JavaSet集合实现的算法优化方法的流程示意图。具体实施方式为了使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。如图1所示的一种基于JavaSet集合实现的算法优化方法,包括如下步骤:步骤1、构造set集合并构造set集合中节点的内部类,具体可以通过HashSet、TreeSet等集合实现set集合;步骤2、通过所述内部类构造对象实体的内部接口;步骤3、在所述内部接口设置存放集合的实际元素;步骤4、所述内部接口设置所述实际元素的属性值;步骤5、所述内部接口提供所述实际元素的获取方法、设置方法、比较方法、哈希值获取;步骤6、构造哈希表;步骤7、在所述哈希表内存储所述节点的对象;步骤8、进行元素比较;步骤9、在set集合的分支下单独再建集合;步骤10、所述集合通过布隆过滤器进行大量字符串去重,按照布隆过滤器算法,重写contains方法和add方法,算法原理如下:布隆过滤器是一种多哈希函数映射的快速查找算法,它实际上是由一个很长的二进制向量和一系列随机映射函数组成,一个空的布隆过滤器是一个m位的位数组,所有位的值都为0,定义了k个不同的符合均匀随机分布的哈希函数,每个函数把集合元素映射到位数组的m位中的某一位,添加一个元素,先把这个元素作为k个哈希函数的输入,拿到k个数组位置,然后把所有的这些位置置为1,查询一个元素,把这个元素作为k个哈希函数的输入,得到k个数组位置,这些位置中只要有任意一个是0,元素肯定不在这个集合里,如果元素在集合里,那么这些位置在插入这个元素时都被置为1了。所述步骤7在所述哈希表内存储所述节点的对象时,所述哈希表通过哈希值从大到小或者从小到达的顺序将所述节点的对象进行存储,便于快速对比,提高对比效率。所述步骤8进行元素比较时,通过二分法查找的方式进行对比,所述二分法查找方式为不断将数组进行对半分割,每次拿中间元素和目标元素进行比较。具体对比策略为先通过元素地址比较,再通过元素值比较。以上公开的本专利技术优选实施例只是用于帮助阐述本专利技术。优选实施例并没有详尽叙述所有的细节,也不限制该专利技术仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本专利技术的原理和实际应用,从而使所属
技术人员能很好地理解和利用本专利技术。本专利技术仅受权利要求书及其全部范围和等效物的限制。本文档来自技高网
...

【技术保护点】
1.一种基于Java Set集合实现的算法优化方法,其特征在于,包括如下步骤:步骤1、构造set集合并构造set集合中节点的内部类;步骤2、通过所述内部类构造对象实体的内部接口;步骤3、在所述内部接口设置存放集合的实际元素;步骤4、所述内部接口设置所述实际元素的属性值;步骤5、所述内部接口提供所述实际元素的获取方法、设置方法、比较方法、哈希值获取;步骤6、构造哈希表;步骤7、在所述哈希表内存储所述节点的对象;步骤8、进行元素比较;步骤9、在set集合的分支下单独再建集合;步骤10、所述集合通过布隆过滤器进行大量字符串去重。

【技术特征摘要】
1.一种基于JavaSet集合实现的算法优化方法,其特征在于,包括如下步骤:步骤1、构造set集合并构造set集合中节点的内部类;步骤2、通过所述内部类构造对象实体的内部接口;步骤3、在所述内部接口设置存放集合的实际元素;步骤4、所述内部接口设置所述实际元素的属性值;步骤5、所述内部接口提供所述实际元素的获取方法、设置方法、比较方法、哈希值获取;步骤6、构造哈希表;步骤7、在所述哈希表内存储所述节点的对象;步骤8、进行元素比较;步骤9、在set集合的分支下单独再建集合;步骤10、所述集合通过布...

【专利技术属性】
技术研发人员:孟彦章文友朱静轩
申请(专利权)人:中新网络信息安全股份有限公司
类型:发明
国别省市:安徽,34

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

1