Вам не нужны два цикла и вам также не нужно ListIterator
.
Обратите внимание, что эти два условия могут быть верными, но вы хотите удалить только один элемент в любом случае, потому что вызов дважды remove()
будетВозбудите исключение.
Вы также можете напрямую извлечь date
из повторного объекта Doc
, чтобы сделать его еще более понятным:
for (Iterator<Doc> iterator = doc.iterator(); iterator.hasNext(); ) {
Date date = iterator.next().getDate();
if( (param.getFromDateTime() != null && date.before(params.getFromTime()))
|| (params.getToDateTime() != null && date.after(params.getToDateTime()))) {
iterator.remove();
}
}