我有一个 ListBuffer。我想删除所有满足特定条件的元素。
我可以遍历它并删除每个元素。但是 Scala 对改变你正在迭代的列表有什么看法?它会起作用,还是会删除错误的元素/不返回所有元素?(对 REPL 的快速尝试表明是的,它会搞砸的)
我可以反复调用 find ,然后删除找到的元素,直到找不到更多,但这听起来效率低下。
.filter 将返回一个没有元素的新 ListBuffer ,但我想就地执行它。
这个
def --= (xs: TraversableOnce[A]) : ListBuffer.this.type
Removes all elements produced by an iterator from this list buffer.
看起来很有希望,但我不太明白如何在这里使用它
我该怎么做?