Нет, это не будет работать, так как вы не можете изменить коллекцию, пока над ней стоит Iterator
.Вы должны накапливать элементы, которые вы удалите в другую временную коллекцию, и впоследствии удалить их все.
Лучшим подходом, если вам не нужны индексы, в которых находится элемент, будет использование TreeSet<T>
класс, который по структуре предоставляет метод tailSet(T element)
, который делает именно то, что вам нужно.