楼主: Lisrelchen
1303 0

【博文精选】Scala中函数组合器的用法 [推广有奖]

  • 0关注
  • 62粉丝

VIP

院士

67%

还不是VIP/贵宾

-

TA的文库  其他...

Bayesian NewOccidental

Spatial Data Analysis

东西方数据挖掘

威望
0
论坛币
49957 个
通用积分
79.5487
学术水平
253 点
热心指数
300 点
信用等级
208 点
经验
41518 点
帖子
3256
精华
14
在线时间
766 小时
注册时间
2006-5-4
最后登录
2022-11-6

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
  1. 本文主要记录了scala学习中的常用函数组合器,包括map,filter,zip,foreach,groupBy,flatten,drop等。

  2. map
  3. map方法可以将某个函数应用到集合中的每个元素并产出其结果的集合。举例:

  4. val names = List("a","b","c")
  5. names.map(_.toUpperCase)
  6. 得到结果

  7. List("A","B","C")
  8. foreach
  9. foreach和map类似,只不过它没有返回值,foreach只要是为了对参数进行作用。比如:

  10. List(1,2,3,4,5).foreach{x=>
  11.    println(x)
  12. }

  13. 输出:

  14. 1
  15. 2
  16. 3
  17. 4
  18. 5
  19. flatten
  20. flatten的作用是可以把嵌套的结构展开,例如

  21. scala> List(List(1,2),List(3,4)).flatten
  22. res0: List[Int] = List(1, 2, 3, 4)
  23. flatmap
  24. flatMap结合了map和flatten的功能。接收一个可以处理嵌套列表的函数,然后把返回结果连接起来。

  25. scala> List(List(1,2),List(3,4)).flatMap(x=>x.map(x=>x*2))
  26. res5: List[Int] = List(2, 4, 6, 8)
  27. filter
  28. 滤除掉使函数返回false的元素

  29. scala> def isEven(i: Int): Boolean = i % 2 == 0
  30. isEven: (i: Int)Boolean

  31. scala> List(1,2,3,4).filter(isEven _)
  32. res6: List[Int] = List(2, 4)
  33. zip
  34. zip方法将两个集合结合在一起,例如:

  35. scala>  List('a,'b,'c).zip(List(1,2,3))
  36. res32: List[(Symbol, Int)] = List(('a,1), ('b,2), ('c,3))
  37. zipWithIndex
  38. 将集合中的元素和对应的下标结合再一起,下标从0开始

  39. scala> List(2,3,4,5).zipWithIndex
  40. res33: List[(Int, Int)] = List((2,0), (3,1), (4,2), (5,3))
  41. groupBy
  42. 对集合中的元素进行分组操作,结果是得到一个Map,举例

  43. scala> List((1,2),(1,3),(2,3),(3,3),(3,4)).groupBy(_._1)
  44. res1: scala.collection.immutable.Map[Int,List[(Int, Int)]] = Map(2 -> List((2,3)), 1 -> List((1,2), (1,3)),
  45.       3 -> List((3,3), (3,4)))
  46. drop
  47. 去掉集合前面的n个元素

  48. scala> List(1,2,3,4,5,6,7).drop(3)
  49. res2: List[Int] = List(4, 5, 6, 7)
  50. dropRight(n) 是去掉后面的n个元素

  51. scala> List(1,2,3,4,5,6,7).dropRight(3)
  52. res3: List[Int] = List(1, 2, 3, 4)
  53. patch
  54. 对于可变的数据结构进行批量替换,返回新的copy,原数据不变

  55. scala> val a = List(1,2,3)
  56. a: List[Int] = List(1, 2, 3)

  57. scala> val b = List(4,5)
  58. b: List[Int] = List(4, 5)

  59. scala> a patch(0,b,2)
  60. res1: List[Int] = List(4, 5, 3)

  61. scala> a patch(1,b,2)
  62. res2: List[Int] = List(1, 4, 5)
复制代码
http://www.voidcn.com/course

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:SCALA Collection foreach BOOLEAN collect filter names 记录 元素

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-23 17:24