scala Eliminar (en su lugar) todos los elementos de un ListBuffer que cumplan una condición

Tengo un ListBuffer. Quiero eliminar todos los elementos que cumplan una determinada condición.

Podría iterar sobre él y eliminar cada elemento. Pero, ¿qué dice Scala sobre la mutación de una lista que está iterando? ¿Funcionará o eliminará los elementos incorrectos / no devolverá todos los elementos? (Un intento rápido con el REPL sugiere que sí, se equivocará)

Podría llamar repetidamente a find y luego eliminar el elemento encontrado hasta que no encuentre más, pero eso suena ineficiente.

.filter me devolverá un nuevo ListBuffer sin los elementos, pero quiero hacerlo en su lugar.

Esta

def --= (xs: TraversableOnce[A]) : ListBuffer.this.type
Removes all elements produced by an iterator from this list buffer.

parece prometedor, pero no puedo ver cómo usarlo aquí

¿Cómo debería hacer esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta