/**
* 平分list , 奇数条数据自动进一平分, Object根据自身需要进行替换成对应类型
*
* @param n 每个大小
* @param pdlist 接收的list
* @return 等分好的list
*/
public static List<List<Object>> divideEquallyList(int n, List<Object> pdlist) {
//存储每份list
List<List<Object>> sblist = new ArrayList<>();
if (null == pdlist || pdlist.size() == 0) {
return sblist;
}
//如果不可除
if (pdlist.size() <= n) {
sblist.add(pdlist);
} else {
//余数
int rmd = pdlist.size() % n;
//处理整数部分
for (int i = 0; i < pdlist.size() - rmd; i += n) {
sblist.add(pdlist.subList(i, i + n));
}
//处理余数部分
if (rmd > 0) {
sblist.add(pdlist.subList(pdlist.size() - rmd, pdlist.size()));
}
}
return sblist;
}
我数学不好,对于网上那些平分list时偏移量都用上的代码我看不懂,逻辑上本来很简单的事情为什么要搞那么复杂?上面代码可能写的不够艺术,但也是为了同学们看的思路清晰,有问题你大可留言或私信,虚心接受批评