交集
对于非Set集合,在做交集时必须转换为Set,否则元素不去重没有意义。
List(1, 2, 3, 4).toSet
Set(1, 2, 3, 4) & Set(5, 6, 4, 7) // &方法等同于interset方法
Set(1, 2, 3, 4) intersect Set(5, 6, 4, 7)
结果:5, 1, 6, 2, 7, 3, 4
并集
对于非Set集合,在做并集时必须转换为Set,否则元素不去重没有意义。
Set(1, 2, 3, 4) ++ Set(5, 6, 4, 7)
Set(1, 2, 3, 4) | Set(5, 6, 4, 7) // |方法等同于union方法
Set(1, 2, 3, 4) union Set(5, 6, 4, 7)
结果: 4
差集
对于非Set集合,在做差集时必须转换为Set,否则元素不去重没有意义。
scala> Set(1, 2, 3, 4) -- Set(5, 6, 4, 7)
scala> Set(1, 2, 3, 4) &~ Set(5, 6, 4, 7)
scala> Set(1, 2, 3, 4) diff Set(5, 6, 4, 7)
结果:5, 6, 7
去重
对于非Set类型集合元素去重,也有个很好的方法:distinct,定义在 GenSeqLike 特质中
这个方法的好处是集合在去重后类型不变,比用Set去重更简洁
List(1,2,2,3).distinct
List(1,2,2,3).toSet.toList
--------------------------------------------------------------------------------------------------------------
不足之处还请多多指教