TypechoJoeTheme

IT技术分享

统计

07. Scala 数组和集合常用方法——Scala语言基础教程

2018-04-24
/
0 评论
/
682 阅读
/
正在检测是否收录...
04/24

sorted

默认升序,可以使用 reverse 进行逆反

val arr = Array(1,3,5,2,7,1,8,3)
arr.sorted
arr.sorted.reverse

sortWith

arr.sortWith( _ > _) // 降序
arr.sortWith( _ < _) // 升序
arr.sortWith( (x,y) => x &lt; y)

sortBy

val arr = scala.collection.mutable.ArrayBuffer( 1,6,2,5,9,23,43,12)
arr.sortBy( x => x.toString )
arr.sortBy( x => x) // 升序排
arr.sortBy( x => -x) // 降序排

grouped

val list = List(1,3,2,5,4,6,3,8,7,2,4)
list.grouped(3)  // 将链表每三个分成一组 形成List( List(1,3,2), List(5,4,6), List(3,8,7), List(2,4) )

reduce

汇总,根据传入的函数,对集合中的数据进行汇总操作

val list = List(2,4,7,1,8,2)
list.reduce(<em>+</em>)  // 对集合里面的数据求和
list.reduceLeft(<em>+</em>) // 对集合里面的数据,从左至右依次求和
list.reduceRight(<em>+</em>) // 对集合里面的数据,从右至左依次求和

fold

和reduce类似,不过在汇总的过程中,可以传入一个初始值

val list = List(2,4,7,1,8,2)
list.fold(10)(<em>+</em>)  // 对集合里面的数据求和
list.reduceLeft(10)(<em>+</em>) // 对集合里面的数据,从左至右依次求和。sum函数实质是调用的foldLeft
list.reduceRight(10)(<em>+</em>) // 对集合里面的数据,从右至左依次求和

aggregate

List( List(1,3,2), List(5,4,6), List(3,8,7), List(2,4) )
arr.aggregate(10)((x,y) => x + y.sum, (m,n) => m + n) // 10 会首先赋给x,整个过程中,10被加了一次
arr.aggregate(10)(<em>+</em>.sum, <em>+</em>)

union

求并集

var l1 = List(2,4,6,8)
var l2 = List(1,3,6,8,9)
l1 union l2
l1.union(l2)

intersect

求交集

var l1 = List(2,4,6,8)
var l2 = List(1,3,6,8,9)
l1 intersect l2
l1.intersect(l2)

diff

求差集

var l1 = List(2,4,6,8)
var l2 = List(1,3,6,8,9)
l1 diff l2
l1.diff(l2)

max,min,sum

Scala 基础教程
朗读
赞 · 0
版权属于:

IT技术分享

本文链接:

https://idunso.com/archives/2686/(转载时请注明本文出处及文章链接)