У меня есть ListBuffer. Я хочу удалить все элементы, удовлетворяющие определенному условию.
Я могу перебрать его и удалить каждый элемент. Но что Scala говорит об изменении списка, который вы повторяете? Будет ли это работать, или удалит не те элементы / не вернет все элементы? (Быстрая попытка с REPL предполагает, что да, это испортит)
Я мог бы многократно вызывать find и затем удалять найденный элемент, пока больше не нахожу, но это звучит неэффективно.
.filter вернет мне новый ListBuffer без элементов, но я хочу сделать это на месте.
Этот
def --= (xs: TraversableOnce[A]) : ListBuffer.this.type
Removes all elements produced by an iterator from this list buffer.
выглядит многообещающим, но я не совсем понимаю, как его использовать здесь
Как мне это сделать?