List集合切割成多個固定長度的多個集合

項目遇到這種場景,一個很大List集合對象,需要批量的插入到數據庫中,爲了提高保存的效率,採用切割的方法,將一個大的集合,切割成多個固定大小的多個集合,再分多次,批量將這些集合保存入庫,前提交代清楚,程序員還是看代碼比較直接,代碼如下:
封裝的核心Util類

public class ChoppedUtil {

//第一個參數表示要切割的List集合,第二個參數表示分割後的集合大小
    public static <T> List<List<T>> chopped(List<T> list, final int L) {
        List<List<T>> parts = new ArrayList<List<T>>();
        final int N = list.size();
        for (int i = 0; i < N; i += L) {
            parts.add(new ArrayList<T>(
                    list.subList(i, Math.min(N, i + L)))
            );
        }
        return parts;
    }
}

使用方式:

List<Student> list = new ArrarList<>();
list.add(new Student());
list.add(new Student());
list.add(new Student());
...........
 List<List<Student>> choppedList = ChoppedUtil.chopped(list ,100);
           for (List<Student> subList : choppedList) {
                studentDao.save(subList);
            }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章