版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinosoft12345/article/details/85097616
今天看到一篇博文,写了关于对List进行分组的相关内容,我想到之前做项目时也遇到过要进行分组的处理,那我也想再重新来写一下代码,不参考任何资料,就靠自己的思路来写方法,并且测试通过,先分享出来,后续如果有更好的方式再继续优化,大致的代码如下:
package com.wzz.test;
import com.google.common.collect.Lists;
import java.util.Arrays;
import java.util.List;
public class MainTest {
public static void main(String[] args) {
List<String> strList = Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9");
System.out.println(getSplitList(strList, 6));
}
public static <T> List<List<T>> getSplitList(List<T> list, int n) {
if (list == null) {
throw new NullPointerException("List is null.");
}
if (n <= 0) {
throw new IllegalArgumentException();
}
List<List<T>> groupList = Lists.newArrayList();
List<T> newList = Lists.newArrayList(list);
int len = newList.size();
int num = len % n == 0 ? len / n : (len / n + 1);
for (int i = 0; i < num; i++) {
groupList.add(list.subList(i * n, (i+1) * n > len ? len : (i+1) * n ));
}
return groupList;
}
}
输出结果: