scala flatMap 简介
2016-07-22 16:01
405 查看
scala flatMap的理解
一、官方例子个人解析
结果:
一、官方例子个人解析
<pre name="code" class="java">object FlatMapTest extends App{ //官方API用法 def getWords(lines: Seq[String]): Seq[String] = lines flatMap (line => line split "\\W+") //返回的集合是静态类型,所以必须要注意返回的类型,例如: var words:List[String] =List[String]("asd","sdf","11111") //返回seq集合而不是set集合 def lettersOf(words: Seq[String]) = words flatMap (word => word.toSet) var temp = lettersOf(words) println(temp.mkString(",")) // 返回set集合而不是seq集合 def lettersOf1(words: Seq[String]) = words.toSet[String] flatMap (word => word) var temp1 = lettersOf1(words) println(temp1.mkString(",")) // xs will be a an Iterable[Int] //注意这里的_是tuple类型,flatMap自动把map转为tuple类型这里等价于(m=>m._2) val xs = Map("a" -> List(11,111,22), "b" -> List(22,222,2222)).flatMap(_._2) println(xs.mkString(",")) // ys will be a Map[Int, Int] val ys = Map("a" -> List(1 -> 11,1 -> 111), "b" -> List(2 -> 22,2 -> 222)).flatMap(_._2) println(ys.mkString(",")) println("通过以上两个例子可以总结:1.对于一阶集合flatMap返回与主对象相同的类型\n 2.对于map,flatMap能扁平化一层的map,把map的每个键值对都转为tuple形式") }
结果:
a,s,d,s,d,f,1 s,f,a,1,d 11,111,22,22,222,2222 1 -> 111,2 -> 222 通过以上两个例子可以总结:1.对于一阶集合flatMap返回与主对象相同的类型 2.对于map,flatMap能扁平化一层的map,把map的每个键值对都转为tuple形式
相关文章推荐
- 通过继承ListActivity实现列表 了解
- 链表的划分
- @Resource、@Autowired、@Qualifier的注解注入及区别
- 控制试图圆角
- poj3683Priest John's Busiest Day【2-sat二选一输出】
- Linux下下载百度云大文件
- 认识和理解css布局中的BFC
- Zookeeper的设计模式之观察者模式(十)
- redis范围查询应用-查找IP所在城市<转>
- web应用中Spring ApplicationContext的动态更新
- 解决windows系统80端口被占用问题(转)
- Python Opearte SQLAlchemy Do Something
- 本地缓存和中央缓存 同步数据思路
- iOS-OC-提交审核:Missing Push Notification Entitlement
- HDOJ 5742 (2016多校联合训练 Training Contest 2) It's All In The Mind
- poj 1696
- wifi详解(五)
- 按钮 边角 相关设置
- Intent基本介绍
- shuffle机制和TextInputFormat分片和读取分片数据(九)