当前位置: 首页 > news >正文

男女做暧暧网站视频网站的链接怎么做

男女做暧暧网站,视频网站的链接怎么做,网站后台关键词怎么设置,搬瓦工安装wordpress背景 我们在做软件开发时#xff0c;经常会遇到把大集合的数据#xff0c;拆分成子集合处理。例如批量数据插入数据库时#xff0c;一次大约插入5000条数据比较合理#xff0c;但是有时候待插入的数据远远大于5000条。这时候就需要进行数据拆分。数据拆分基本逻辑并不复杂经常会遇到把大集合的数据拆分成子集合处理。例如批量数据插入数据库时一次大约插入5000条数据比较合理但是有时候待插入的数据远远大于5000条。这时候就需要进行数据拆分。数据拆分基本逻辑并不复杂下面尝试把数据拆分逻辑封装一下。 拆分逻辑 拆分过程唯一要求就是数据不能遗漏也不能重复处理。 定义子集合大小遍历源数据集合达到一个子集合大小根据业务需要开始处理子集合数据直到处理完所有数据 代码 先实现基本功能代码 /*** param dataList 原数据集合* param subSize 子集合size* throws Exception*/public static T void processdSubData(ListT dataList, int subSize) throws Exception {//子集合对象ListT subDataList new ArrayList();//计数变量int count 0;for (T t : dataList) {subDataList.add(t);count;//累计子集合数据数量if (count subSize) {//这里可以使用等号个人习惯使用大于等于try {//处理子集合数据//doSomeThing(subDataList);} catch (Exception e) {throw e;} finally {//清空计数变量和子集合count 0;subDataList.clear();}}}//这里的剩余数据处理非常容易遗漏这也是为什么要封装公共代码的一个原因//封装成公共代码后就不用担心遗漏这一部分数据if (subDataList.size() 0) {//最后一次剩余数据量小于subSize,这里再处理一次try {//处理子集合数据//doSomeThing(subDataList);} catch (Exception e) {throw e;}}}以上的代码逻辑清晰且没有复杂的索引计算是个比较好的实现。但是代码没有通用性每次遇到数据拆分都要写一遍拆分呢逻辑写的多了难免出问题。仔细看下代码除了处理子集合数据的业务代码方法其他代码都是一样的。下面改造一下子集合数据的业务方法由外部传入。那么拆分逻辑部分就可以通用不用担心出问题了。 新实现 业务处理接口 package cn.com.soulfox.common.functions.splitdata;import java.util.List;/**** 子数据集合业务数据处理接口* create 2024/6/24 10:21*/ FunctionalInterface//函数式接口只有一个抽象方法 public interface SplitDataCallbackT {void splitDataProcess(ListT subDataList); } 拆分工具类 package cn.com.soulfox.common.functions.splitdata;import java.util.List;/*** 大集合拆分处理** * create 2024/6/24 10:35*/ public class SplitDataListUtil {/*** param dataList 待拆分数据集合* param subSize 子集合的size* param callback 子集合数据处理类* throws Exception*/public static T void processData(ListT dataList, int subSize, SplitDataCallbackT callback) throws Exception {//如果不做成公共代码下面的判空的代码忙的时候就不会写了吧 -:if (callback null) {//处理类为空return;}if (dataList null || dataList.isEmpty()) {//数据集合为空return;}if (subSize 0) {//子集长度小于等于 0return;}if (subSize dataList.size()) {//子集长度大于等于原集合不需要拆分直接处理try {callback.splitDataProcess(dataList);} catch (Exception e) {System.out.println(处理子数据集失败:e.getMessage());throw e;}return;}processdSubData(dataList, subSize, (SplitDataCallbackT) callback);}/*** param dataList 原数据集合* param subSize 子集合size* param callback 子集合数据处理类* throws Exception*/private static T void processdSubData(ListT dataList, int subSize, SplitDataCallbackT callback) throws Exception {//子集合对象ListT subDataList new ArrayList();int count 0;for (T t : dataList) {subDataList.add(t);//计数count;if (count subSize) {//这里可以使用等号个人习惯使用大于等于//数量达到subSize做一次处理try {callback.splitDataProcess(subDataList);} catch (Exception e) {System.out.println(处理子数据集失败:e.getMessage());throw e;} finally {//清空计数变量和子集合count 0;subDataList.clear();}}}//这里的剩余数据处理非常容易遗漏这也是为什么要封装公共代码的一个原因//封装成公共代码后就不用担心遗漏这一部分数据if (subDataList.size() 0) {//最后一次剩余数据量小于subSize,这里再处理一次try {callback.splitDataProcess(subDataList);} catch (Exception e) {System.out.println(处理子数据集失败:e.getMessage());throw e;}}} } 单元测试 package cn.com.soulfox.common.functions.splitdata;import org.junit.Before; import org.junit.Test;import java.util.Arrays; import java.util.List;/**** create 2024/6/24 15:50*/ public class SplitDataListUtilTest {private ListString dataList;Beforepublic void setup(){//准备数据dataList Arrays.asList(a,b,c,1,2);}Testpublic void test(){//定义子集合sizeint subSize 2;//业务逻辑比较简单, 可直接写业务代码try {SplitDataListUtil.processData(this.dataList, subSize,(subDataList - {System.out.println(简单业务代码);subDataList.forEach(data -{System.out.println(简单业务代码: data);});}));} catch (Exception e) {e.printStackTrace();}} } 业务处理逻辑复杂 实现类 package cn.com.soulfox.common.functions.splitdata;import java.util.List;/*** 业务逻辑复杂* create 2024/6/24 16:05*/ public class ComplexBusinessImpl implements SplitDataCallbackString{Overridepublic void splitDataProcess(ListString subDataList) {System.out.println(复杂业务代码);subDataList.forEach(data -{System.out.println(复杂业务代码: data);});}} 加一个测试方法 Testpublic void testComplexBusiness(){//定义子集合sizeint subSize 2;//业务逻辑比较复杂, 创建接口实现类ComplexBusinessImpl 传入方法中ComplexBusinessImpl complexBusiness new ComplexBusinessImpl();try {SplitDataListUtil.processData(this.dataList, subSize, complexBusiness);} catch (Exception e) {e.printStackTrace();}}测试结果 总结一下。。。 拆分数据功能并不复杂封装公共代码也看不什么好处实际开发的时候直接复制拆分代码即可。   这里主要是为了提出一种设计通用功能的思路。任何功能总有一部分结构性代码是不变的变化的是业务处理代码。例如上面的例子中把大集合拆分成小集合的逻辑是不变的变化的是数据处理逻辑。把不变的部分抽象出来封装成公共代码同时把一些判空边界数据做一下统一处理这样就会在提高代码复用率的同时减少出错几率。
http://www.hkea.cn/news/14307028/

相关文章:

  • 设计师国外网站30个无加盟费的项目
  • 贺州市八步区建设局网站如何创建网站小程序
  • 自己做网站的意义网络设计工资一般多少
  • 网站建设氵金手指下拉十三网站开发用什么服务器
  • 汕头模板做网站人社部能力建设中心网站
  • 五大免费资源网站wordpress阿里百秀缩略图
  • 满洲里建设局网站广州网站设计价格
  • 运城市建设局网站原则网站设计版式
  • 深圳住房和建设部网站做外贸在哪个网站注册
  • 图书管理系统网站开发教程分析网站做的好坏
  • 怎样让自己网站的文章被百度收录网络广告策划书模板范文
  • 免费制作网站服务器建设网站的工作步骤
  • 白银做网站网页设计网站首页代码
  • 宿迁网站seo开通网站申请书
  • 怎么做简单网站首页网站备案信息登记表
  • 做网站推广收入好吗重庆市建设施工安全网站
  • 西安市住房和城乡建设局门户网站网站建设快速
  • 网站开发的未来展望唐山万唯网络科技有限公司
  • 长春网站开发senluowx网页游戏传奇霸业攻略
  • 竞价网站服务器郑州做网站公司
  • 怎么做网站能快速赚钱免费网站建站2773
  • 网站打赏怎么做的做网站设计难吗
  • 阿里云做网站开发吗网站怎么让百度收录
  • 网站建设步骤与时间表网站搭建前景
  • drupal 网站开发wordpress页码插件
  • wordpress外贸模板下载佛山关键词优化
  • 企业做网站的费用账务如何处理系部网站建设管理方案
  • 做网站找俊义 合优企点怎么群发消息
  • 大学生网站设计作品成品代码模板工
  • 惠州网站外包wordpress纯净版下载地址