scala中集合的交集、并集、差集

简介:

scala中有一些api设计的很人性化,集合的这几个操作是个代表:

交集:

scala> Set(1,2,3) & Set(2,4)   // &方法等同于interset方法
scala> Set(1,2,3) intersect Set(2,4)

并集:

scala> Set(1,2,3) ++ Set(2,4)
scala> Set(1,2,3) | Set(2,4)   // |方法等同于union方法
scala> Set(1,2,3) union Set(2,4)

差集:

scala> Set(1,2,3) -- Set(2,4) //得到 Set(1,3)
scala> Set(1,2,3) &~ Set(2,4) 
scala> Set(1,2,3) diff Set(2,4)

添加或删除元素,可以直接用+,-方法来操作,添加删除多个元素可以用元组来封装:

scala> Set(1,2,3) + (2,4)
scala> Set(1,2,3) - (2,4)

另外,对于非Set集合,在做交集、并集、差集时必须转换为Set,否则元素不去重没有意义。
而对于非Set类型集合元素去重,也有个很好的方法:distinct,定义在 GenSeqLike 特质中

这个方法的好处是集合在去重后类型不变,比用Set去重更简洁

scala> List(1,2,2,3).distinct
scala> List(1,2,2,3).toSet.toList 

补充,原用于去重的方法removeDuplicates已不鼓励使用。

文章转载自:http://hongjiang.info/scala-union-diff-intersect/


==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/p/4046427.html,如需转载请自行联系原作者

相关文章
|
安全 Java Scala
Scala集合【上】
Scala集合【上】
|
Scala
162 Scala 集合
162 Scala 集合
160 0
|
分布式计算 Scala Spark
Scala【集合常用方法和函数操作(下)】
Scala【集合常用方法和函数操作(下)】
|
分布式计算 Scala Spark
Scala 【集合常用方法和函数操作-上】
Scala 【集合常用方法和函数操作-上】
|
存储 JavaScript Java
Scala语言入门三(集合)
Scala集合的概念和使用
1359 149
|
Scala
scala-模式匹配(字符串、数组、元组、集合、类、偏函数)
scala-模式匹配(字符串、数组、元组、集合、类、偏函数)
196 0
|
Scala 容器
Scala学习--day04--集合、常用方法、案例实操 - WordCount TopN、不同省份的商品点击排行
Scala学习--day04--集合、常用方法、案例实操 - WordCount TopN、不同省份的商品点击排行
328 2
|
Scala
Scala综合练习_基于以下List集合实现词频统计
Scala综合练习_基于以下List集合实现词频统计
228 0
|
Scala 容器
Scala集合和遍历 2
Scala集合和遍历
261 0
|
Scala 索引
Scala集合和遍历 1
Scala集合和遍历
289 0