public static void main(String[] args) {
List<Integer> taskList = new ArrayList<>();
for (int i = 1; i <= 52; i++) {
taskList.add(i);
}
int total = taskList.size();
int threadNum = 5;
int remaider = total % threadNum; // 计算出余数
int number = total / threadNum; // 计算出商
int offset = 0;// 偏移量
for (int i = 0; i < threadNum; i++) {
if (remaider > 0) {
List<Integer> subList = taskList.subList(i * number + offset, (i + 1) * number + offset + 1);
remaider--;
offset++;
System.out.println(subList.get(0) + "--" + subList.get(subList.size() - 1));
} else {
List<Integer> subList = taskList.subList(i * number + offset, (i + 1) * number + offset);
System.out.println(subList.get(0) + "--" + subList.get(subList.size() - 1));
}
}
}

打印结果:

1--11
12--22
23--32
33--42
43--52

一种错误的写法:

int page = 10;
int pageSize = (total + page - 1) / page;
for (int i = 1; i <= page; i++) {
  List<String> subList = list.subList((i - 1) * pageSize, i == page ? total : i * pageSize);
}

例如将6个分为5份,算得每一份size为2(其实只是最大的一份为2),这样前3份就将数据分完了,到第4份就会报IndexOutOfBoundsException.

最新文章

  1. Python基础(二)之list
  2. c#中栈和堆的理解
  3. ALTERA MAX10官方评估板,新鲜出炉!
  4. C#之你懂得的序列化/反序列化
  5. setChecked方法触发onCheckedChanged监听器问题
  6. php接口加密
  7. 【NOIP模拟】LCS及方案数(DP)
  8. IIS网站本机可以访问但局域网其他机器无法访问 解决方法
  9. 手持机设备公司(WINCE/ANDROID/LINUX)
  10. 在windows中创建.gitignore文件
  11. 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165321
  12. Spark WordCount 文档词频计数
  13. HTML 中的 href\src\url
  14. Part-Eight 模板与群体数据的组织
  15. JS中的三种循环
  16. 【MySQL】【2】数字排序问题
  17. 3--Python入门--Python数据集合类型--元组
  18. 非递归和递归分别实现求第n个斐波那契数。
  19. 用Javascript开发网页截屏插件
  20. MYSQL——root密码更换

热门文章

  1. dateframe取数据
  2. 用个体软件过程(PSP)记录你的工作
  3. 2018.10.15 loj#6010. 「网络流 24 题」数字梯形(费用流)
  4. 2018.09.16 bzoj3757: 苹果树(树上莫队)
  5. docker入门实战
  6. centos7安装 docker
  7. linux 各项配置汇总
  8. EBS Archiving and Purging: You Know you need to
  9. delphi 使用oauth的控件
  10. delphi 手机振动 IOS Android