【Java】 List集合拆分按N进行分组

版权声明:本文为博主原创文章,未经博主允许不得转载。 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;

    }


}

输出结果:

猜你喜欢

转载自blog.csdn.net/sinosoft12345/article/details/85097616