将一个List拆分成N分List
public static <T> List<List<T>> averageList(List<T> lst,int n){
//每一份的大小
int num=lst.size()%n==0?lst.size()/n:lst.size()/n+1;
List<List<T>> result=new ArrayList<List<T>>();
for(int i=1;i<=n;i++){
if(lst.size()%n==0){
//能平均分配
result.add(lst.subList((i-1)*num,i*num));
}else{
//不能平均分配
if(i==n){
//最后一个
result.add(lst.subList((i-1)*num,lst.size()));
}else{
result.add(lst.subList((i-1)*num,i*num));
}
}
}
return result;
}
休眠算法
/**
*
*/
@Test
public void test06() {
int sleepTime = 500;
while (true) {
try {
int num = (int) (1 + Math.random() * (10 - 1 + 1));
if ((num & 1) == 1) {
//奇数--睡眠
sleepTime = sleepTime + 500;
logger.info("开始睡眠sleepTime:" + sleepTime);
sleepTime = sleepTime > 10000 ? 10000 : sleepTime;
Thread.sleep(sleepTime);
} else {
//偶数--处理事情
sleepTime = sleepTime - 1000;
sleepTime = sleepTime < 0 ? 0 : sleepTime;
logger.info("开始处理sleepTime:" + sleepTime);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}