CN109445795A - 多次异步调用同一数据请求时回调函数中的数据处理方法 - Google Patents
多次异步调用同一数据请求时回调函数中的数据处理方法 Download PDFInfo
- Publication number
- CN109445795A CN109445795A CN201811073150.XA CN201811073150A CN109445795A CN 109445795 A CN109445795 A CN 109445795A CN 201811073150 A CN201811073150 A CN 201811073150A CN 109445795 A CN109445795 A CN 109445795A
- Authority
- CN
- China
- Prior art keywords
- data
- comparator
- treeset
- capsule
- ordering rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 7
- 239000002775 capsule Substances 0.000 claims abstract description 28
- 238000013499 data model Methods 0.000 claims abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 12
- 230000008707 rearrangement Effects 0.000 claims abstract description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4434—Reducing the memory space required by the program code
- G06F8/4435—Detection or removal of dead or redundant code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种多次异步调用同一数据请求时回调函数中的数据处理方法,包括如下步骤:步骤1,将异步调用数据请求返回的数据转换为数据模型M的类型,并存储在数据容器B中;步骤2,将数据容器B中的数据作为参数传入Comparator比较器,得到Comparator比较器的排序规则;步骤3,将Comparator比较器作为参数传递给TreeSet集合的构造函数,此时TreeSet集合按照Comparator比较器的排序规则排序数据;步骤4,用实现Comparator比较器排序规则的TreeSet集合存储数据容器B,TreeSet按排序规则重新排序数据容器B;步骤5,用数据容器C存储TreeSet集合,此时数据容器C中的数据就是完成去重后的数据。此种方法可快速、低消耗、简洁地实现数据去重。
Description
技术领域
本发明涉及一种多次异步调用同一数据请求时造成回调函数中数据重复的处理方法。
背景技术
通常的数据请求方法,在请求数据后,通过回调函数返回请求成功后的数据。当由于业务需求必须多次异步调用该数据请求方法时,每一个请求互不干扰地执行完毕后,把回调函数返回的数据保存进数据容器,由于每一个请求都会执行一次回调函数,所以会重复保存多次数据,从而造成数据重复。
现有去除数据重复的技术是通过双循环的方式,外循环从数据容器的第1个数据开始遍历,内循环从数据容器的最后一个数据开始遍历,在内循环里判断两个数据是否相等,相等则把该数据从数据容器中移除,以达到去除数据容器中的重复数据的目的。
采用双循环的方式进行数据去重,代码臃肿;当数据量非常庞大的时候,循环次数过多,过于消耗设备性能,造成程序卡顿甚至程序崩溃;同时该方法效率低下,耗时较长,有待改进。
发明内容
本发明的目的,在于提供一种多次异步调用同一数据请求时回调函数中的数据处理方法,其可快速、低消耗、简洁地实现数据去重。
为了达成上述目的,本发明的解决方案是:
一种多次异步调用同一数据请求时回调函数中的数据处理方法,包括如下步骤:
步骤1,将异步调用数据请求返回的数据转换为数据模型M的类型,并存储在数据容器B中;
步骤2,将数据容器B中的数据作为参数传入Comparator比较器,得到Comparator比较器的排序规则;
步骤3,将Comparator比较器作为参数传递给TreeSet集合的构造函数,此时TreeSet集合按照Comparator比较器的排序规则排序数据;
步骤4,用实现Comparator比较器排序规则的TreeSet集合存储数据容器B,TreeSet按排序规则重新排序数据容器B;
步骤5,用数据容器C存储TreeSet集合,此时数据容器C中的数据就是完成去重后的数据。
采用上述方案后,本发明通过定义数据模型M及其字段Ma实现比较器Comparator的排序规则,用实现Comparator比较器排序规则的TreeSet来实现数据容器中数据的去重,从而能够快速、低消耗地解决数据去重,简洁地实现数据去重。
附图说明
图1是本发明的流程图。
具体实施方式
以下将结合附图,对本发明的技术方案及有益效果进行详细说明。
如图1所示,本发明提供一种多次异步调用同一数据请求时回调函数中的数据处理方法,首先进行如下定义:
1.定义一个数据请求方法A,通过回调函数返回请求成功后的数据;
2.定义一个数据模型M,同时定义数据模型M的一个字段Ma;
3.定义一个数据容器B和一个ArrayList类型的数据容器C;其中,数据容器B的类型不限,可以是安卓开发中的任意数据类型,如List、ArrayList、HashMap等,在本实施例中,为使文档简洁,采用ArrayList类型;
4.定义一个Comparator比较器;
5.定义一个TreeSet集合。
所述数据处理方法包括如下步骤:
步骤1,多次异步调用数据请求方法A;
步骤2,每一次请求都会触发回调函数并返回请求成功后数据,假设这些数据为数据1、数据2、数据3、...,把请求成功后的数据的类型转换为数据模型M的类型,假设转换后为M1、M2、M3、...;
步骤3,用数据容器B存储已经转换为数据模型M后的数据M1、M2、M3、...;
步骤4,把数据模型M作为参数传入Comparator比较器,在Comparator比较器的compare方法内部,任意获取两个数据模型为M的数据,假设为M1和M2,通过比较M1的字段Ma和M2的字段Ma来实现Comparator比较器的排序规则;具体来说,通过M1.Ma>M2.Ma来比较两个数据模型的Ma字段大小,比较结果为真则返回compare的值为1,比较结果为假则返回compare值为-1;Comparator比较器根据compare的值来进行排序规则,为1则该比较器按正序排序数据,为-1则该比较器按倒序排序;
步骤5,把Comparator比较器作为参数传递给TreeSet集合的构造函数,此时TreeSet集合内部会按照Comparator比较器的排序规则排序数据;
步骤6,用实现Comparator比较器排序规则的TreeSet集合存储数据容器B,TreeSet按步骤4的排序规则重新排序数据容器B;当TreeSet集合增加数据容器B时,TreeSet按照排序规则排序数据,如果出现重复数据则只会保存一次,因此,当TreeSet增加完数据容器B中的数据后,TreeSet中不存在重复数据;
步骤7,此时,TreeSet集合中的数据都是数据模型M类型的数据,但由于直接操作TreeSet内数据不方便,因此用数据容器C存储TreeSet集合,此时数据容器C中的数据就是完成去重后的数据。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (2)
1.一种多次异步调用同一数据请求时回调函数中的数据处理方法,其特征在于包括如下步骤:
步骤1,将异步调用数据请求返回的数据转换为数据模型M的类型,并存储在数据容器B中;
步骤2,将数据容器B中的数据作为参数传入Comparator比较器,得到Comparator比较器的排序规则;
步骤3,将Comparator比较器作为参数传递给TreeSet集合的构造函数,此时TreeSet集合按照Comparator比较器的排序规则排序数据;
步骤4,用实现Comparator比较器排序规则的TreeSet集合存储数据容器B,TreeSet按排序规则重新排序数据容器B;
步骤5,用数据容器C存储TreeSet集合,此时数据容器C中的数据就是完成去重后的数据。
2.如权利要求1所述的多次异步调用同一数据请求时回调函数中的数据处理方法,其特征在于:所述步骤2中,得到Comparator比较器的排序规则的方法是:任取数据容器B中的两个数据,通过比较两个数据中的字段Ma来实现Comparator比较器的排序规则。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811073150.XA CN109445795A (zh) | 2018-09-14 | 2018-09-14 | 多次异步调用同一数据请求时回调函数中的数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811073150.XA CN109445795A (zh) | 2018-09-14 | 2018-09-14 | 多次异步调用同一数据请求时回调函数中的数据处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109445795A true CN109445795A (zh) | 2019-03-08 |
Family
ID=65530316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811073150.XA Pending CN109445795A (zh) | 2018-09-14 | 2018-09-14 | 多次异步调用同一数据请求时回调函数中的数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109445795A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419717A (zh) * | 2021-06-24 | 2021-09-21 | 广州欢网科技有限责任公司 | 一种java集合快速排序方法和设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387206A (zh) * | 2011-10-20 | 2012-03-21 | 镇江睿泰信息科技有限公司 | 一种Web服务并发请求合成方法及系统 |
CN103617211A (zh) * | 2013-11-20 | 2014-03-05 | 浪潮电子信息产业股份有限公司 | 一种HBase加载数据的导入方法 |
CN106528257A (zh) * | 2016-10-31 | 2017-03-22 | 国云科技股份有限公司 | 一种简化和限制并发ajax请求的方法 |
US20170116262A1 (en) * | 2015-10-27 | 2017-04-27 | At&T Mobility Ii Llc | Analog Sorter |
-
2018
- 2018-09-14 CN CN201811073150.XA patent/CN109445795A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387206A (zh) * | 2011-10-20 | 2012-03-21 | 镇江睿泰信息科技有限公司 | 一种Web服务并发请求合成方法及系统 |
CN103617211A (zh) * | 2013-11-20 | 2014-03-05 | 浪潮电子信息产业股份有限公司 | 一种HBase加载数据的导入方法 |
US20170116262A1 (en) * | 2015-10-27 | 2017-04-27 | At&T Mobility Ii Llc | Analog Sorter |
CN106528257A (zh) * | 2016-10-31 | 2017-03-22 | 国云科技股份有限公司 | 一种简化和限制并发ajax请求的方法 |
Non-Patent Citations (3)
Title |
---|
JAVA EXAMPLES: "treeset-Comparator", 《HTTP://WWW.JAVAEXAMPLES4U.COM/2009/04/TREESET-COMPARATOR.HTML》 * |
L-_-CZ: "List根据某字段去重,以及compareTo 浅解", 《HTTPS://BLOG.CSDN.NET/QQ_35788725/ARTICLE/DETAILS/82259013》 * |
LEONARDO REDMOND: "多次调用异步回调函数(C#)", 《HTTP://CN.VOIDCC.COM/QUESTION/P-PHPOJYRP-SN.HTML》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419717A (zh) * | 2021-06-24 | 2021-09-21 | 广州欢网科技有限责任公司 | 一种java集合快速排序方法和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552133B2 (en) | Image deployment method and apparatus | |
CN109815283B (zh) | 一种异构数据源可视化查询方法 | |
CN109886859B (zh) | 数据处理方法、系统、电子设备和计算机可读存储介质 | |
CN109697500B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN108415845A (zh) | Ab测试系统指标置信区间的计算方法、装置和服务器 | |
US10027596B1 (en) | Hierarchical mapping of applications, services and resources for enhanced orchestration in converged infrastructure | |
US20160048413A1 (en) | Parallel computer system, management apparatus, and control method for parallel computer system | |
CN109359115B (zh) | 基于图数据库的分布式存储方法、装置及系统 | |
US9665612B2 (en) | Run-time decision of bulk insert for massive data loading | |
US20150378861A1 (en) | Identification of software phases using machine learning | |
CN106502720B (zh) | 一种数据处理方法和装置 | |
CN102521218B (zh) | 文件合成方法及装置 | |
CN110109899B (zh) | 物联网数据填补方法、装置及系统 | |
US20210142154A1 (en) | Memory pre-allocation for forward calculation in a neural network | |
CN111324427A (zh) | 一种基于dsp的任务调度方法及装置 | |
CN103995191A (zh) | 空调器机型的识别方法及装置 | |
WO2015167562A1 (en) | Using local memory nodes of a multicore machine to process a search query | |
WO2016095187A1 (en) | Apparatus and method for adding nodes to a computing cluster | |
CN109445795A (zh) | 多次异步调用同一数据请求时回调函数中的数据处理方法 | |
CN108628678B (zh) | 内存参数的确定方法、装置及设备 | |
CN112506992A (zh) | Kafka数据的模糊查询方法、装置、电子设备和存储介质 | |
CN111159131A (zh) | 性能优化方法、装置、设备及计算机可读存储介质 | |
CN113010315A (zh) | 资源分配方法及分配装置、计算机可读存储介质 | |
CN117369941A (zh) | Pod调度方法和系统 | |
CN107704362A (zh) | 一种基于Ambari监控大数据组件的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190308 |
|
RJ01 | Rejection of invention patent application after publication |