将一个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 ...
随机推荐
- 创建cookie
cookie的创建using System;using System.Collections.Generic;using System.Linq;using System.Web;using Syst ...
- c++11 改进设计模式 Singleton模式
关于学习 <深入应用c++11>的代码笔记: c++11之前是这么实现的 template<typename T> class Singleton{ public: stati ...
- AMD、CMD、UMD 模块的写法
简介 最近几年,我们可以选择的Javascript组件的生态系统一直在稳步增长.虽然陡增的选择范围是极好的,但当组件混合匹配使用时就会出现很尴尬的局面.开发新手们会很快发现不是所有组件都能彼此“和平相 ...
- 2018.09.16 loj#10243. 移棋子游戏(博弈论)
传送门 题目中已经给好了sg图,直接在上面跑出sg函数即可. 最后看给定点的sg值异或和是否等于0就判好了. 代码: #include<bits/stdc++.h> #define N 2 ...
- springcloud-eureka简单实现
请参考 spring+cloud为服务实战 第三章 一.创建Eureka服务 1.使用Idea创建一个项目 结构如下: 2.pom.xml配置: <?xml version="1.0& ...
- 1024 Hello World
哈哈,原来今天是程序员的节日啊,快乐咯,可是今天好冷好冷~~
- SQL之mysql常用操作语句(入门级)
1.进入数据库: mysql -u root -p mysql -h localhost -u root -p database_name 2.列出数据库 show databases; 3.选择数据 ...
- Deployment failure on Tomcat 6.x. Could not copy all resources to D:\...\webapps\eptInfo. If a file is locked, you can wait until the lock times out to redeploy, or stop the server and redeploy, or ma
tomcat服务并没有启动.工程中之前引了一个包,后来这个包被删除了,但是因为已经发布过这个工程了,所以classpath中就有这个包名了,这样发布的时候也会去找这个包但是已经不存在了,所以无copy ...
- MapGIS Mobile开发
1. 先将Android开发环境配置好(包括Java + Eclipse + Android SDK) 2. 加载API类库(运行MapGIS 10 AndroidSDK.exe可以加载Mobile框 ...
- Codeforces801B Valued Keys 2017-04-19 00:21 136人阅读 评论(0) 收藏
B. Valued Keys time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...