Когда нужно отправить много записей в API или базу, их часто удобнее обрабатывать пачками. Так проще контролировать нагрузку и размер одного запроса.
Пусть есть список событий:
List events = List.of("a", "b", "c", "d", "e");Размер пачки лучше держать отдельной переменной:
int batchSize = 2;
Идём по списку шагом batchSize:
for (int start = 0; start < events.size(); start += batchSize) {
int end = Math.min(start + batchSize, events.size());
}Теперь получаем часть списка:
List batch = events.subList(start, end);
Эту пачку можно отправить дальше:
sendBatch(batch);
Важно что subList возвращает view на исходный список. Если исходный список будут менять параллельно, лучше сделать независимую копию.
Для копии достаточно одной строки:
List batch = List.copyOf(events.subList(start, end));
Такой приём подходит для bulk insert, отправки сообщений, экспорта данных, обработки файлов и любых задач, где один большой список нужно безопасно разложить на управляемые части.
👉 Java Ready | #практика