写在前面: 我是
「nicedays」
,一枚喜爱做特效,听音乐,分享技术的大数据开发猿
。这名字是来自world order乐队的一首HAVE A NICE DAY
。如今,走到现在很多坎坷和不顺,如今终于明白nice day是需要自己赋予的。
白驹过隙,时光荏苒,珍惜当下~~
写博客一方面是对自己学习的一点点总结及记录
,另一方面则是希望能够帮助更多对大数据感兴趣的朋友。如果你也对大数据与机器学习
感兴趣,可以关注我的动态https://blog.csdn.net/qq_35050438
,让我们一起挖掘数据与人工智能的价值~
数组函数分类:
分区类函数:
partition(p: (T) ⇒ Boolean): (Array[T], Array[T])
- 由于返回的是布尔值,所以只能返回两个区 (Array[T], Array[T])
val a = Array(1, 2, 3, 4, 5)
val b:(Array[Int],Array[Int]) = a.partition( {
x:Int => x % 2 == 0})
println(b._1.mkString(",")) // return 2,4
println(b._2.mkString(",")) // return 1,3,5
groupBy[K](f: (T) ⇒ K): Map[K, Array[T]]
- 按条件分组,条件由 f 匹配,返回值是Map类型,每个key对应一个序列,下面代码实现的是,把小于3的数字放到一组,大于3的放到一组,返回Map[String,Array[Int]]
val a = Array(1, 2, 3,4)
val b = a.groupBy( x => x match {
case x if (x < 3) => "small"
case _ => "big"
})
grouped(size: Int): collection.Iterator[Array[T]]
- 按指定数量分组,每组有 size 数量个元素,返回一个集合迭代器
val a = Array(1, 2, 3,4,5)
val b = a.grouped(3).toList
b.foreach((x) => println("第"+(b.indexOf(x)+1)+"组:"+x.mkString(",")))
/**
第1组:1,2,3
第2组:4,5
*/
span(p: (T) ⇒ Boolean): (Array[T], Array[T])
- 分割序列为两个集合,从第一个元素开始,直到找到
第一个不满足条件的元素
止,之前的元素放到第一个集合,其它的放到第二个集合
val a = Array(3,2,1,4,5)
val b = a.span( {
x:Int => x > 2})
println(b._1.mkString(",")) // 3
println(b._2.mkString(",")) // 2,1,4,5
排序类函数:
sortBy[B](f: (T) ⇒ B)(implicit ord: math.Ordering[B]): Array[T]
-
按指定的排序规则排序
-
如果数组里有数字有字符串,排序会报错
val a = Array(3,2,1,4,5)
val b = a.sortBy( {
x:Int => x})// 升序
val b1 = a.sortBy( {
x:Int => 0-x})// 降序
println(b.mkString(",")) // 1,2,3,4,5
sortWith(lt: (T, T) ⇒ Boolean): Array[T]
- 自定义排序方法
- 当数组里有数字有字符串就先转字符在判断
val a = Array(3,2,1,4,5)
val b = a.sortWith(_.compareTo(_) > 0) // 大数在前
println(b.mkString(",")) // 5,4,3,2,1
取值类函数:
apply(i: Int): T
- 取出指定索引处得元素
arr.apply(index)
head()
- 拿头元素
arr.head
last()
- 拿尾元素
arr.last
init: Array[T]
- 返回当前序列中不包含最后一个元素的序列
val a = Array(10, 2, 3, 40, 5)
val b = a.init
println(b.mkString(",")) // 10, 2, 3, 40
tail()
- 去头元素
val a = Array(10, 2, 3, 40, 5)
val b = a.tail
println(b.mkString(",")) // 2, 3, 40,5
slice(from: Int, until: Int): Array[T]
- 取出当前序列中,from 到 until 之间的片段
val a = Array(1,2,3,4,5)
val b = a.slice(1,3)
println(b.mkString(",")) // 2,3
take(n: Int): Array[T]
- 返回当前序列中前 n 个元素组成的序列
val a = Array(1,2,3,4,5)
val b = a.take(3) // 1,2,3
takeRight(n: Int): Array[T]
val a = Array(1,2,