直接上代码,直接运行:?
package com.sxp.Collection;
import java.util.ArrayList;
import java.util.List;
/** list平均切分
* @author 有点皮
* @date 2019-01-08
*/
public class ListDemo {
public static void main(String[] args) {
//创建一个集合,元素为1~97
List<Integer> list = new ArrayList<>(100);
for (int i =1;i<98;i++){
list.add(i);
}
//平均分成5个元素打印结果
subList(list,5);
}
public static<T> void subList(List<T> list,int pages){
if(list == null || list.size()==0) {
return ;
}
List<T> sub = null;
//取整数
int nums = list.size()/pages;
//取余数
int remain = list.size()%pages;
if(remain>0 ){
nums = nums+1;
}
for (int i =0;i<nums;i++){
if(i ==nums-1 && remain>0){
sub = list.subList(i*pages,i*pages+remain);
}
else {
sub =list.subList(i*pages,(i+1)*pages);
}
System.out.println(sub);
}
}
}
运行结果如下:
[1, 2, 3, 4, 5]
[6, 7, 8, 9, 10]
[11, 12, 13, 14, 15]
[16, 17, 18, 19, 20]
[21, 22, 23, 24, 25]
[26, 27, 28, 29, 30]
[31, 32, 33, 34, 35]
[36, 37, 38, 39, 40]
[41, 42, 43, 44, 45]
[46, 47, 48, 49, 50]
[51, 52, 53, 54, 55]
[56, 57, 58, 59, 60]
[61, 62, 63, 64, 65]
[66, 67, 68, 69, 70]
[71, 72, 73, 74, 75]
[76, 77, 78, 79, 80]
[81, 82, 83, 84, 85]
[86, 87, 88, 89, 90]
[91, 92, 93, 94, 95]
[96, 97]