/**
* @param list 被分组集合
* @param n 每组个数
* @return
*/
public static List <List> groupList(List list, int n) {
List <List> result = new ArrayList <> ();
int remainder = list.size () % n; //(先计算出余数)
int number = list.size () / n; //然后是商
if (0 != remainder) {
number = number + 1;
}
for (int i = 0; i < number; i++) {
List value = null;
if (i < number - 1) {
value = list.subList (i * n, (i + 1) * n);
} else {
value = list.subList (n * (number - 1), list.size ());
}
result.add (value);
}
return result;
}
/**
* 将集合分成n组
*
* @param list 被分组集合
* @param n 拆分成n组
* @return
*/
public static List <List> groupList(List list, int n) {
List <List> result = new ArrayList <List> ();
int remainder = list.size () % n; //(先计算出余数)
int number = list.size () / n; //然后是商
int offset = 0;//偏移量
for (int i = 0; i < n; i++) {
List value = null;
if (remainder > 0) {
int start = i * number + offset;
int end = (i + 1) * number + offset + 1;
value = list.subList (start, end);
remainder--;
offset++;
} else {
int start1 = i * number + offset;
int end1 = (i + 1) * number + offset;
value = list.subList (start1, end1);
}
result.add (value);
}
return result;
}