Enr*_*tyo 19 functional-programming scala list
假设我有两个列表:
val a = List('a', 'b', 'c')
val b = List('a', 'b', 'c', 'd')
我想得到不在第一个列表中的元素(在这种情况下它是'd').我知道我可以用循环来做到这一点,但是有没有任何奇特的功能方法可以在一行中快速完成这项工作?
我一直在查看Scala List API,但只能找到union和intersection(它会给我List('a','b','c','d')和List('a','b) ','c')分别)
oll*_*erg 23
你可以使用diff这个:
scala> b diff a
res1: List[Char] = List(d)
Set如果你正在做的话,你可能想要合作diff.
vod*_*ang 13
我想你可以用b -- a.这是scala的文档:
def -- [B >: A] (that: List[B]) : List[B]
Computes the difference between this list and the given list that.
that
the list of elements to remove from this list.
returns this list without the elements of the given list that.
deprecated: use list1 filterNot (list2 contains) instead
对不推荐使用已弃用的方法,这是当前的好方法: list1 filterNot (list2 contains)
def filterNot (p: (A) ? Boolean) :List [A]选择此列表中不满足谓词的所有元素.p用于测试元素的谓词.返回一个新列表,该列表包含此列表中不满足给定谓词p的所有元素.保留元素的顺序.定义类:TraversableLike
| 归档时间: | 
 | 
| 查看次数: | 13336 次 | 
| 最近记录: |