Scalaの要素コレクションと、最初のコレクションと同じサイズの別のブール値コレクションがあるとしましょう(2番目のコレクションはRamer-Douglas-Peucker algorithmの結果です)。コレクションからすべてのインデックスを削除する
ここでは、中間コレクションを作成せずに、同じインデックスの2番目のコレクションが同じインデックスの2番目のコレクションである1回目のコレクションからすべてのアイテムを削除します。私はそれを行うことができる任意のScalaコレクションで組み込みのメソッドを見つけることができませんでした。もちろん私は自分自身を書くことができますが、Scalaのコレクションはまだ一つではありません。私はそれを逃していますか?
例:
List(1, 2, 3).removeWhere(List(false, true, false)) shouldEqual List(2)
// removeWhere is an imaginary name for the method I'm looking for
それは二次だが、まだ例のように、短いリストのために働くだろう。 'zip'の解は線形です(さらに短くなります)。 – 9000
ジップバージョンは間違いなく優れています。 '' 'list1.indexOf'''はリニア自体であることを忘れないでください。 2回のパスはOKです。 –