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/

最新文章

  1. GetWord 3.3 屏幕取词
  2. 学生各门课程成绩统计SQL语句大全
  3. HDU 5754 Life Winner Bo (找规律and博弈)
  4. DBCONN
  5. [Python学习笔记][第五章Python函数设计与使用]
  6. Android移植busybox
  7. 如何开始使用bootstrap
  8. bitcms 一个迟到的项目,一个老程序的项目总结
  9. mac连接windows远程桌面及文件复制
  10. idea安装了Mybaits Plugin插件后,启动不起来了
  11. 分解质因数FZU - 1075
  12. [options] 未与 -source 1.6 一起设置引导类路径
  13. 11个超震撼的HTML5和纯CSS3动画源码
  14. EasyUI表格DataGrid格式化formatter用法
  15. ATS metric query
  16. 牛客OI周赛4-提高组 B 最后的晚餐(dinner)
  17. git clone时出现:"diffie-hellman-group1-sha1 "
  18. 内存溢出导致jenkins自动部署到tomcat失败
  19. facebook工具xhprof的安装与使用-分析php执行性能
  20. 1.SpringBoot之Helloword 快速搭建一个web项目

热门文章

  1. Laravel 下结合阿里云邮件推送服务
  2. 【深入ASP.NET原理系列】--ASP.NET请求管道、应用程序生命周期、整体运行机制
  3. 【语言基础】c++ 备忘录
  4. 千呼万唤岂出来,写款软件不容易——Visual Entity 2.0 发布
  5. nios II--实验7——数码管IP硬件部分
  6. 从B 树、B+ 树、B* 树谈到R 树
  7. html 文本超过显示省略号
  8. js 漩涡
  9. 【jQuery EasyUI系列】 创建展开行明细编辑表单的CRUD应用
  10. 用centos光盘安装RPM包的方法