Вы не можете сделать это эффективно, к сожалению. Реализация --=(xs: TraversableOnce[A])
(в развернутом виде; фактический код более компактен)
xs foreach (x => this -= x) ; this
, что не так эффективно, как делать это по одному (т.е. O(n*m)
, где n
- длина исходного списка, а m
- количество удаляемых элементов).
Как правило, изменяемые коллекции не имеют такого полного и мощного набора методов, как неизменяемые. (То есть у них есть все замечательные методы, используемые в неизменяемых коллекциях, но относительно немного их собственных.)
Так что, если вы не удалите очень нескольких объектов, вам, вероятно, лучше отфильтровать список, чтобы создать новый.