今天遇到一个大集合里面的数据删除问题,

因为是一个大集合,如果同时传递到数据库,那么就会造成数据库压力

所以分批次的进行批量操作

其实 也可以采用多线程来处理或者多批次加多线程来处理都是可以的

下面的案例 主要讲述是大集合拆分成小集合的代码

避免下次用到忘记了!

啥也不说,直接上代码,避免下次会用到,先记着

public static void main(String[] args) {
List<String> list=new ArrayList<String>();
for (int i = 0; i <=100000; i++) {
list.add(""+i);
}
int size=list.size();
int num = (size) % 30 == 0 ? (size / 30) : (size / 30 + 1);// 按每30条记录查询
int start=0;
int end =0;
List<String> a = new ArrayList<String>();
//方法1
for (int i = 1; i <= num; i++)
{
end=(i*30)> size ? size:(i*30);
start=(i-1)*30;
for(;start < end; start++){
a.add(list.get(start));
}
System.out.println("输出数据---"+a.toString());
//此处可以进行处理数据 插入 修改删除 都可以进行操作 避免同时操作大集合数据
a.clear();
}
//方法2
end=0;
start=0;
for (int i = 1; i <= num; i++)
{
end=(i*30)> size ? size :(i*30);
start=(i-1)*30;
System.out.println(end+"--"+start);
a=list.subList(start,end);
System.out.println("输出数据-bbb--"+a.toString());
}
}

最新文章

  1. 【活动】写#听云#原创博文 赢取iPhone 6超级大奖
  2. 基于.NET平台常用的框架整理 (转)
  3. How to evaluate a transimpedance amplifier (part 1)
  4. Linux dirname $0 source if
  5. 气泡形提示控件grumble.js
  6. Windows phone 之独立存储
  7. 《C和指针》章节后编程练习解答参考——第8章
  8. js动态给table添加行(tr)
  9. 在CI框架下执行存储的方法
  10. ofbiz学习笔记
  11. ubuntu环境ceph配置入门(一)
  12. [ExtJS5学习笔记]第第二十四次 Extjs5形式上gridpanel或表单数据后台传输remoteFilter设定
  13. CXF.bat
  14. 那些年我们一起清除过的浮动float与clearfix
  15. myeclipse2017+ssm+tomcat8+jdk1.8
  16. 背水一战 Windows 10 (104) - 通知(Toast): 纯文本 toast, 短时 toast, 长时 toast, 图文 toast
  17. require/exports 与 import/export 的区别?
  18. TCP三次握手--syn攻击
  19. linux网络配置命令(二)——ip
  20. Burpsuit分块传输插件绕WAF原理和技巧(转)

热门文章

  1. Day15 HTML补充、初识JavaScript
  2. 领域驱动设计(Domain Driven Design)参考架构详解
  3. JSP内置对象(下)
  4. Android应用自杀和干掉其它进程
  5. 【NOIP 2011】 观光公交
  6. SQLserver 数据库
  7. Android开源项目发现---Spinner选择器与日历选择器篇(持续更新)
  8. AlarmManager.setRepeating将不再准确
  9. mysql 累加排序求名次
  10. C语言基础课程 第四课 它山之石可以攻玉---C语言数据类型和表达式