将一个List拆分为n份的方法
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.
将一个List拆分为n份的方法的更多相关文章
- 【编程题目】一个整数数组,长度为 n,将其分为 m 份,使各份的和相等,求 m 的最大值★★ (自己没有做出来!!)
45.雅虎(运算.矩阵): 2.一个整数数组,长度为 n,将其分为 m 份,使各份的和相等,求 m 的最大值 比如{3,2,4,3,6} 可以分成 {3,2,4,3,6} m=1; {3,6}{2,4 ...
- Ansible: hosts文件拆分为inventory和定义inventory全局变量
前言 随着管理机器的增多,我们在使用Ansible的时候时常会遇到hosts文件过于冗长的问题,极其不便于管理,而将hosts文件拆分为inventory就可解决该问题:另外,hosts中的每个主机条 ...
- 整数划分为k份
题目 将整数n分成k份,且每份不能为空,任意两个方案不能相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5; 1,5,1; 5,1,1; 问有多少种不同的分法. 输入 ...
- 如何将一个div水平垂直居中?4种方法做推荐
方案一: div绝对定位水平垂直居中[margin:auto实现绝对定位元素的居中], 兼容性:,IE7及之前版本不支持 div{ width: 200px; height: 200px; backg ...
- 如何将LNMP拆分为LNP+MySQL
1.备份172.16.1.7上的数据库信息 [root@web01 ~]# mysqldump -uroot -p'oldxu.com' --all-databases > mysql-all. ...
- React的性能优化 - 代码拆分之lazy的使用方法
我们在某些网站上肯定看到过这样一种现象,页面上图片只有你滚动到那个位置附近的时候才会加载,否则就只占了个位,这就是延迟加载最普遍的应用场景. 我们react框架进行开发的时候也是一样,没有使用的组件是 ...
- 如何将一个div水平垂直居中?6种方法做推荐
方案一: div绝对定位水平垂直居中[margin:auto实现绝对定位元素的居中], 兼容性:,IE7及之前版本不支持 div{ width: 200px; height: 200px; backg ...
- 【JAVA习题二十八】海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
package erase; import java.util.Scanner; public class 猴子分桃 { public static void main(String[] args) ...
- 将字符串拆分为id
Sql : alter function [fn_splitSTR] ( ), -- 5,6,7 ) -- ',' ) )) as begin declare @splitlen int begin ...
随机推荐
- 第十届Mockplus ▪ UXPA用户体验西南赛区决赛成功举行
九月的重庆,秋意渐浓. 伴随着凉爽的秋风,第十届Mockplus·UXPA国际用户体验创新大赛(UXD Award2018)西南赛区决赛于9月16日下午在四川美术学院-虎溪校区成功举办.来自西南区域各 ...
- test 测试spring容器类
- 微信JSSDK分享接口
<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js& ...
- 微分方程数值解Euler法
微分方程:dy/dt=1+y; 解是y=2exp(x)-1; clc clear figure() dx=0.1; x=:dx:; y=zeros(size(x)); x()=; y()=; :len ...
- 类内初始值(c++11)
1.概念 1)可以为数据成员提供一个类内初始值,创建对象时,类内初始值用于初始化数据成员,没有初始值的成员将被默认初始化 2)类内初始值和赋值类似,或者放在花括号里(如数组),或者放在等号右边,不能使 ...
- UVa 11367 Full Tank? (DP + Dijkstra)
题意:n个城市有m条道路.每个城市的油价不一样,给出起点s和终点t,以及汽车的油箱的容量,求从城市s到城市 t 的最便宜路径. 析:dp[u][i] 表示在第 u 个城市,还剩下 i L升油,一开始用 ...
- day13(反射,BeanUtils包)
反射, 获取字节码文件的方式: 方式一: 对象.getClass(); 方式二: 类名.Class; 方式三: Class.forName(String Class); 通过字节码文件获取对象 定 ...
- (树的直径)LightOJ -- 1094
链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88230#problem/C 求树的直径,这里只不过给每条边增加一个边长属性,变成 ...
- handsontable 问题
碰到问题了,去官网上找community:http://docs.handsontable.com/0.16.1/tutorial-quick-start.html 1. 描述:把handson ta ...
- Moving XML/BI Publisher Components Between Instances
As it is well known fact that XMLPublisher stores the metadata and physical files for templates and ...