java把list集合平均分成多个⼩的list package com;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import ch.SyslogOutputStream;
public class TestList {
public static void main(String[] args) {
List<User> tarArr = new ArrayList<User>();
for(int i=0; i<10; i++){
User user = new User();
user.setId(i);
user.setName("⼩明"+i);
tarArr.add(user);
}
List<List<User>> result = createList(tarArr, 3);
System.out.println(result);
}
/**
*
* @param targe  将要被拆分的list
* @param size  把将要拆分的list拆分成⽬标list的个数
* @return
*/
public static List createList(List<User> targe,int targeSplitSize){
List resultList = new ArrayList<List<User>>() ;
//先求每组平均分多少个,如果不够分补⾜,最后⼀个少分
int avgSize = targe.size()%targeSplitSize==0?targe.size()/targeSplitSize:targe.size()/targeSplitSize+1;        //求出最后⼀组的个数
int lastArraySize = targe.size() - avgSize*(targeSplitSize-1);
int k = 0;  //取出list中元素的计数器
for(int i=0; i<targeSplitSize; i++){
List list = new ArrayList<User>();
//如果不是最后⼀组则按照平均⼤⼩拆分⽬标list
if(i !=(targeSplitSize-1)){
for(int j=0; j<avgSize; j++){
User user = (k);
list.add(user);
k++;
}
}else{
for(int j=0; j<lastArraySize; j++){
User user = (k);
list.add(user);
k++;nodejs字符串转数组
}
}
resultList.add(list);
}
return resultList;
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。