比方說,我有一個Scala元素集合和另一個與第一個集合相同大小的布爾集合(對於好奇的讀者,第二集合是Ramer-Douglas-Peucker algorithm的結果)。刪除集合中的所有索引
現在我想刪除第一個集合中的所有項目,其中第二個集合在同一個索引處具有false
,一次傳遞,而不創建中間集合。我找不到任何可以實現它的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'''本身就是線性的。然後兩個通行證應該可以。 –