Вы можете использовать библиотеку Jibx и привязать свои XML-узлы к объектам, которые их представляют. Вы даже можете перегрузить ArrayList, затем, когда будет добавлено x число объектов, выполнить все регулярные выражения одновременно (предположительно, используя метод для вашего объекта, который выполняет эту логику), а затем сохранить их в базе данных, прежде чем разрешить метод "add" закончить еще раз.
Jibx размещен на SourceForge: Jibx
Для уточнения: вы можете связать свой XML как «коллекцию» этих специализированных держателей строк. Поскольку вы определяете это как коллекцию, вы должны выбрать, какой тип коллекции использовать. Затем вы можете указать свою собственную реализацию ArrayList.
Переопределите метод add следующим образом (забыл тип возвращаемого значения, например, предполагается void):
public void add(Object o) {
super.add(o);
if(size() > YOUR_DEFINED_THRESHOLD) {
flushObjects();
}
}
YOUR_DEFINED_THRESHOLD
- это количество объектов, которые вы хотите сохранить в массиве, пока он не будет сброшен в базу данных. flushObjects (); это просто метод, который будет выполнять эту логику. Метод будет блокировать добавление объектов из файла XML, пока этот процесс не будет завершен. Однако, это нормально, накладные расходы на базу данных, вероятно, будут намного больше, чем чтение и анализ файлов в любом случае.