【Java】 List集合拆分按N進行分組

今天看到一篇博文,寫了關於對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;

    }


}

輸出結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章