list分成多个list
/**
* 将源List按照指定元素数量拆分为多个List
*
* @param source 源List
* @param splitItemNum 每个List中元素数量
*/
public static <T> List<List<T>> averageAssign(List<T> source, int splitItemNum) {
List<List<T>> result = new ArrayList<List<T>>();
if (source != null && source.size() > 0 && splitItemNum > 0) {
if (source.size() <= splitItemNum) {
// 源List元素数量小于等于目标分组数量
result.add(source);
} else {
// 计算拆分后list数量
int splitNum = (source.size() % splitItemNum == 0) ? (source.size() / splitItemNum) : (source.size() / splitItemNum + 1);
List<T> value = null;
for (int i = 0; i < splitNum; i++) {
if (i < splitNum - 1) {
value = source.subList(i * splitItemNum, (i + 1) * splitItemNum);
} else {
// 最后一组
value = source.subList(i * splitItemNum, source.size());
}
result.add(value);
}
}
}
return result;
}
————————————————
版权声明:本文为CSDN博主「眼中有清风。」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/suge_lean/article/details/122045702
* 将源List按照指定元素数量拆分为多个List
*
* @param source 源List
* @param splitItemNum 每个List中元素数量
*/
public static <T> List<List<T>> averageAssign(List<T> source, int splitItemNum) {
List<List<T>> result = new ArrayList<List<T>>();
if (source != null && source.size() > 0 && splitItemNum > 0) {
if (source.size() <= splitItemNum) {
// 源List元素数量小于等于目标分组数量
result.add(source);
} else {
// 计算拆分后list数量
int splitNum = (source.size() % splitItemNum == 0) ? (source.size() / splitItemNum) : (source.size() / splitItemNum + 1);
List<T> value = null;
for (int i = 0; i < splitNum; i++) {
if (i < splitNum - 1) {
value = source.subList(i * splitItemNum, (i + 1) * splitItemNum);
} else {
// 最后一组
value = source.subList(i * splitItemNum, source.size());
}
result.add(value);
}
}
}
return result;
}
————————————————
版权声明:本文为CSDN博主「眼中有清风。」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/suge_lean/article/details/122045702

浙公网安备 33010602011771号