Если вы дополнительно посмотрите на правила стиля , связанные в том же документе, вы можете найти хорошее предложение об использовании итератора в разделе «Примеры» с локальной переменной, такой как:
void removeMatches(Map<? extends String, ? extends Number> map, int max) {
for (var iterator = map.entrySet().iterator(); iterator.hasNext(); ) {
var entry = iterator.next();
if (max > 0 && matches(entry)) {
iterator.remove();
max--;
}
}
}
Кроме того, для части индексов вы также можете сделать что-то вроде:
void removeMatchesIndexes(List<? extends Number> list, int max) {
for (var i = 0; i < list.size(); i++) {
var entry = list.get(i);
if (entry.intValue() > max) {
list.remove(entry);
}
}
}