scala中集合的交集、并集、差集
2014-10-23 17:52 Rollen Holt 阅读(7492) 评论(0) 编辑 收藏 举报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://wenchao.ren
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他
们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其
实我是一个程序员
==============================================================================