Есть ли элегантный способ обработки потока кусками?
Мой точный сценарий - вставка данных в базу данных партиями, поэтому я хочу накапливать объекты DOM, а затем каждые 1000, сбрасывать их.
Я реализовал это, поместив код в аккумулятор, чтобы обнаружить заполнение, а затем сбросить, но это кажется неправильным - управление сбросом должно исходить от вызывающего.
Я мог бы преобразовать поток в список, а затем использовать subList итеративным способом, но это тоже кажется неуклюжим.
Есть ли удобный способ выполнить действие через каждые n элементов, а затем продолжить работу с потоком, обрабатывая его только один раз?