scala - 集合高级操作弃用(列表:List[A] - a:A)

标签 scala scala-collections

为什么会有这种运算符(operator)方法

      @deprecated("use `filterNot (_ == x)` instead", "2.8.0")
  def - [B >: A](x: B): List[B] 
//i.e. List(1,23,3,4,5) - 23

不赞成使用列表,但不建议使用集合?
Set(1,23,3,4) - 23

如果是因为List在性能方面不是很适合此操作,但是我们仍然有应该避免使用length方法。
集合操作符在scala的 future 版本中将如何显示?

最佳答案

List方法的问题在于它从未执行过您期望的操作。天真的,我希望

1,2,3,1,2,3 - 1,2,3,1 == 2,3

因此
1,2,3,1,2,3 - 1 == 2,3,1,2,3

除了那不是你得到的;相反,你得到
1,2,3,1,2,3 - 1 == 2,3,2,3

(这正是filterNot给出的,并且您应该期望得到)。

由于Set的元素是唯一的,因此两种方法之间没有区别。

关于scala - 集合高级操作弃用(列表:List[A] - a:A),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9405545/

相关文章:

scala - 如何使用udf更新包含数组的spark数据框列

scala - IntelliJ 14 中的 `Cannot find symbol`

scala - 在 Scala : Map(<stuff>: _*) or <stuff>. toMap 中哪一个更惯用/更喜欢?

scala - 在 Scala 中迭代列表的 zipper

scala - 如何找到多列的最大值?

Scala 集合元组而不是元组集合

scala - 在 Scala 中的 map 上使用收集

list - Spark 数据帧值到 Scala 列表

scala - Scala的语义可遍历,可迭代,序列,流和 View ?

scala - 如何写(字符串): Int function?