1 /**
2 * 将一组数据固定分组,每组n个元素
3 * @param source 要分组的数据源
4 * @param n 每组n个元素
5 * @param <T>
6 * @return
7 */
8 public <T> List<List<T>> fixedGrouping(List<T> source, int n) {
9
10 if (null == source || source.size() == 0 || n <= 0)
11 return null;
12 List<List<T>> result = new ArrayList<List<T>>();
13
14 int sourceSize = source.size();
15 int size = (source.size() / n) + 1;
16 for (int i = 0; i < size; i++) {
17 List<T> subset = new ArrayList<T>();
18 for (int j = i * n; j < (i + 1) * n; j++) {
19 if (j < sourceSize) {
20 subset.add(source.get(j));
21 }
22 }
23 if(subset.size()>0){
24 result.add(subset);
25 }
26 }
27 return result;
28 }