プロジェクトでこのようなシナリオが発生した場合、大きなリストコレクションオブジェクトをデータベースにバッチで挿入する必要があります。ストレージの効率を向上させるために、大きなコレクションを複数の固定サイズのコレクションにカットするカット方法が採用されています。数回分割し、これらのコレクションをバッチで保存して、ライブラリに送信します。プログラマーは引き続きコードを直接確認します。コードは次のとおりです。
パッケージのコア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);
}