scala数组函数(持续更新)

具体解析请点击相应函数查看

++counthasDefiniteSizemaxBysameElementstoBuffer
++: deepheadminscantoIndexedSeq
+:diffheadOptionminByscanLefttoIterable
/:distinctindexOfmkStringscanRighttoIterator
:+dropindexOfSlicenonEmptysegmentLengthtoList
:\ dropRightindexWhereorElseseqtoMap
addStringdropWhileindicespadTosizetoSeq
aggregateelemManifestinitparslicetoSet
andThenelemTaginitspartitionslidingtoStream
applyendsWithintersectpatchsortBytoTraversable
applyOrElseexistsisDefinedAtpermutationssortWithtoVector
arrayfilterisEmptyprefixLengthsortedtransform
canEqualfilterNotisTraversableAgainproductspantranspose
clonefinditeratorreducesplitAtunion
collectflatMaplastreduceLeftstartsWithunzip
collectFirstflattenlastIndexOfreduceLeftOptionstringPrefixunzip3
combinationsfoldlastIndexOfSlicereduceOptionsumupdate
companionfoldLeftlastIndexWherereduceRighttailupdated
composefoldRightlastOptionreduceRightOptiontailsview
containsforalllengthreprtakewithFilter
containsSliceforeachlengthComparereversetakeRightzip
copyToArraygenericBuilderliftreverseIteratortakeWhilezipAll
copyToBuffergroupBymapreverseMaptozipWithIndex
correspondsgroupedmaxrunWithtoArray
++ 将两个数组合并成一个新的数组
scala> var a = Array("aaa","bbb","ccc")
a: Array[String] = Array(aaa, bbb, ccc)
//定义了一个String类型的数组a,a的内容为aaa,bbb,ccc

scala> var b = Array(1,2,3,4)
b: Array[Int] = Array(1, 2, 3, 4)
//定义了一个Int类型的数组b,a的内容为1,2,3,4

scala> var c = a++b
c: Array[Any] = Array(aaa, bbb, ccc, 1, 2, 3, 4)
//数组a和数组b合并成数组c,因为a为String类型,b为Int类型,所以合并的c为Any类型,c的内容为:aaa, bbb, ccc, 1, 2, 3, 4

++:
和上面的++类似,但是这里可以将数组 与其他类型的结构合并,冒号后面的结构类型决定了结果的结构类型

scala> var a = Array("aaa","bbb","ccc")
a: Array[String] = Array(aaa, bbb, ccc)
//定义了一个String类型的数组a,a的内容为aaa,bbb,ccc

scala> var c = List(1,2,3,4)
c: List[Int] = List(1, 2, 3, 4)
//定义了一个Int类型的List的c,c的内容为1,2,3,4

scala> var d = a++:c
d: List[Any] = List(aaa, bbb, ccc, 1, 2, 3, 4)
//这里d为list类型

scala> var f = c++:a
f: Array[Any] = Array(1, 2, 3, 4, aaa, bbb, ccc)
//f为Array类型

+:和:+
在数组的首位(+:)或者末尾(:+)添加一个元素,并返回一个新数组。冒号一定是 紧挨着数组,不然会报错

scala> var b = Array(1,2,3,4)
b: Array[Int] = Array(1, 2, 3, 4)
//定义了一个Int类型的数组b,a的内容为1,2,3,4

scala> var d = 0 +: b
d: Array[Int] = Array(0, 1, 2, 3, 4)
//在首位添加

scala> var f = b :+ 0
f: Array[Int] = Array(1, 2, 3, 4, 0)
//在末尾添加

/:和:\
对数组中的所有元素进行相同的操作,(/:)foldLeft的简写,(:\)foldRight的简写

/: 的示意图
在这里插入图片描述

scala> var b = Array("a","b","c","d")
b: Array[String] = Array(a, b, c, d)
//定义了一个Int类型的数组b,a的内容为a,b,c,d

scala> ("f" /: b)(_+_)
res34: String = fabcd
//这里的意思是对数组里的元素从左开始都执行+的操作,
//第一个字符串与f合并,同时合并的结果作为左边,
//继续与下一个字符串合并

:\ 示意图
在这里插入图片描述

代码:

scala> var b = Array("a","b","c","d")
b: Array[String] = Array(a, b, c, d)
//定义了一个Int类型的数组b,a的内容为a,b,c,d

scala> (b :\ "f")(_+_)
res35: String = abcdf
//这里的意思是对数组里的元素从左开始都执行+的操作,
//第一个字符串与第二个字符串合并,
//同时合并的结果作为右边,
//继续与下一个字符串合并。直到最后与f合并 

addString
将数组的内容作为字符串返回,可以指定分隔符,开始字符,结束字符
scala> a
res128: Array[Int] = Array(1, 2, 3, 4)

//addString的几种用法
scala> a.addString
def addString(b: StringBuilder): StringBuilder
def addString(b: StringBuilder,sep: String): StringBuilder
def addString(b: StringBuilder,start: String,sep: String,end: String): StringBuilder

scala> var b = new StringBuilder
b: StringBuilder =

//只传一个数组
scala> a.addString(b)
res129: StringBuilder = 1234

scala> var b = new StringBuilder
b: StringBuilder =

//指定分隔符
scala> a.addString(b,"-")
res131: StringBuilder = 1-2-3-4

scala> var b = new StringBuilder
b: StringBuilder =

//指定分隔符,开始字符,结束字符
scala> a.addString(b,"{","-","}")
res132: StringBuilder = {1-2-3-4}

aggregate
柯里化方法,需要传入两个方法作为参数,一般用来做聚合计算
scala> a
res143: Array[Int] = Array(1, 2, 3, 4)

//seqop: (B, Int) 这个地方的Int是因为我这个a数组是Int,实际参数是泛型T
scala> a.aggregate
def aggregate[B](z: => B)(seqop: (B, Int) => B,combop: (B, B) => B): B

//这里我先创建两个简单的函数,作为参数。取名和方法实例中一样是为了方便对应,名字可以随意。
scala> def seqno(m:Int,n:Int):Int = {
  println("seqno执行"+m+"+"+n)
  return m+n
    }
seqno: (m: Int, n: Int)Int

scala> def combop(m:Int,n:Int):Int = {
  println("combop执行"+m+"+"+n)
  return m+n
    }
combop: (m: Int, n: Int)Int

//因为我将数组打散所以不能确定那个数先执行,因此是乱的
scala> var c = a.par.aggregate(10)(seqno,combop)
seqno执行10+1
seqno执行10+2
seqno执行10+4
combop执行11+12
seqno执行10+3
combop执行13+14
combop执行23+27
c: Int = 50

andThen
连续调用函数
scala> k
res370: Array[String] = Array(a, b, c, d)

//将字符串后面拼接上一个a
scala> val pf1:PartialFunction[String,String]={
     | case x => x+"a"
     | }
pf1: PartialFunction[String,String] = <function1>

//将字符串后面拼接上一个b
scala> val pf2:PartialFunction[String,String]={
     | case x => x+"b"
     | }
pf2: PartialFunction[String,String] = <function1>

//连续执行pf1和pf2方法
scala> k.collect(pf1 andThen pf2)
res371: Array[String] = Array(aab, bab, cab, dab)


apply --def apply(i: Int): Any
获取对应索引的值
//取对应索引的值
scala> a.apply(1)
res376: Int = 2

//若没有这个索引则报错
scala> a.apply(4)
java.lang.ArrayIndexOutOfBoundsException: 4
  ... 32 elided
applyOrElse-- def applyOrElse[A1 <: Int, B1 >: Any](x: A1,default: A1 => B1): B1
获取对应索引的值,如果没有返回给定的值
scala> a
res26: Array[Any] = Array(1, a, b)

scala> a.applyOrElse(1,{k:Int => "one"})
res27: Any = a

scala> a.applyOrElse(3,{k:Int => "one"})
res28: Any = one

array def array(i: Int): Any
获取对应索引的值,同apply但是只能用于Array
scala> a
res380: Array[Int] = Array(1, 2, 3, 4)

//取对应索引的值
scala> a.array(1)
res376: Int = 2

//若没有这个索引则报错
scala> a.array(4)
java.lang.ArrayIndexOutOfBoundsException: 4
  ... 32 elided


canEqual
查看两个数组是否可以比较
scala> a
res36: Array[Any] = Array(1, a, b)

scala> b
res37: Array[Int] = Array(1, 2, 3)

scala> a.canEqual(b)
res38: Boolean = true

clone
复制数组内容给另一个数组,如果多位数组,则只能复制引用
scala> a
res36: Array[Any] = Array(1, a, b)

scala> var c = Array(1,2,a)
c: Array[Any] = Array(1, 2, Array(1, a, b))

scala> var d = c.clone
d: Array[Any] = Array(1, 2, Array(1, a, b))

scala> a(2)='c'

scala> a
res40: Array[Any] = Array(1, a, c)

scala> c
res41: Array[Any] = Array(1, 2, Array(1, a, c))

scala> d
res42: Array[Any] = Array(1, 2, Array(1, a, c))

collect
执行偏函数,将执行完偏函数的结果返回为一个新数组
scala> b
res43: Array[Int] = Array(1, 2, 3)

scala> val pf2:PartialFunction[Int,Int]={
     | case x if x%2==0 => x+10
     | }
pf2: PartialFunction[Int,Int] = <function1>

scala> b.collect(pf2)
res44: Array[Int] = Array(12)


collectFirst
执行偏函数,将第一个符合偏函数的值执行偏函数,返回为一个Option
scala> b
res43: Array[Int] = Array(1, 2, 3)

scala> val pf2:PartialFunction[Int,Int]={
      case x if x%2!=0 => x+10
     }

scala> b.collectFirst(pf2)
res46: Option[Int] = Some(11)
combinations
排列组合,将数组中的元素,按着指定长度组合起来,相同索引的元素组合只能出现一次(例如这里1a和a1)
scala> a
res58: Array[Any] = Array(1, a, c)

scala> a.combinations(2)
res47: Iterator[Array[Any]] = non-empty iterator

scala> a.combinations(2).foreach(x => println(x.mkString))
1a
1c
ac
companion
将数组转化为IndexedSeq类型
scala> a
res58: Array[Any] = Array(1, a, c)

scala> a.companion
res59: scala.collection.generic.GenericCompanion[scala.collection.mutable.IndexedSeq] = scala.collection.mutable.IndexedSeq$@168b3791
contains
查看数组中是否包含指定元素
scala> a
res82: Array[Any] = Array(1, a, c)

scala> a.contains(1)
res83: Boolean = true

scala> a.contains(2)
res84: Boolean = false
contains
查看数组中是否包含指定序列
scala> a
res82: Array[Any] = Array(1, a, c)

scala> c
res85: Array[Any] = Array(1, 2, Array(1, a, c))

scala> c.containsSlice(Array(1,2))
res87: Boolean = true

scala> c.containsSlice(Array(1,a,c))
res88: Boolean = false

scala> c.containsSlice(Array(a))
res89: Boolean = true
copyToArray
将给定数组的复制到Array类型的新数组中,从指定位置开始复制,复制给定的长度
scala> var b =Array(1,2,3)
b: Array[Int] = Array(1, 2, 3)

scala> var d = new Array[Int](5)
d: Array[Int] = Array(0, 0, 0, 0, 0)

scala> b.copyToArray(d)

scala> d
res102: Array[Int] = Array(1, 2, 3, 0, 0)

scala> var d = new Array[Int](5)
d: Array[Int] = Array(0, 0, 0, 0, 0)

scala> b.copyToArray(d,1)

scala> d
res106: Array[Int] = Array(0, 1, 2, 3, 0)

scala> var d = new Array[Int](5)
d: Array[Int] = Array(0, 0, 0, 0, 0)

scala> b.copyToArray(d,1,2)

scala> d
res108: Array[Int] = Array(0, 1, 2, 0, 0)
copyToBuffer
将给定数组的复制的内容复制到Buffer中
scala> import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer

scala> b
res117: Array[Int] = Array(1, 2, 3)

scala> b.copyToBuffer(d)

scala> d
res116: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)
corresponds
判断两个数组长度是否相等,且每隔位置的元素是否都满足给定条件
scala> b
res119: Array[Int] = Array(1, 2, 3)

scala> var k = Array(2,3,4)
k: Array[Int] = Array(2, 3, 4)

scala> var f = Array(4,2,3,4)
f: Array[Int] = Array(4, 2, 3, 4)

scala> b.corresponds(f)(_<_)
res122: Boolean = false

scala> b.corresponds(k)(_<_)
res120: Boolean = true
count
计算数组中满足条件的元素有几个
scala> b
res126: Array[Int] = Array(1, 2, 3)

scala> b.count(_>1)
res124: Int = 2

scala> b.count(_==1)
res125: Int = 1
deep
取出对应索引的值,并将值的类型给改为Any类型
scala> b
res135: Array[Int] = Array(1, 2, 3)

scala> b.deep(1)
res136: Any = 2

scala> b.deep(3)
java.lang.ArrayIndexOutOfBoundsException: 3
  at scala.collection.mutable.ArrayOps$ofInt$.apply$extension(ArrayOps.scala:241)
  at scala.collection.mutable.ArrayOps$ofInt.apply(ArrayOps.scala:234)
  at scala.collection.mutable.ArrayLike$$anon$1.apply(ArrayLike.scala:42)
  ... 32 elided
diff
去除前面数组与后面相同的元素,同一个元素只能去除一次
scala> var k = Array(2,3,2,3,4,5)
k: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> b
res138: Array[Int] = Array(1, 2, 3)

scala> k.diff(b)
res139: Array[Int] = Array(2, 3, 4, 5)
distinct
去除数组中重复的元素
scala> var k = Array(2,3,2,3,4,5)
k: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.distinct
res140: Array[Int] = Array(2, 3, 4, 5)
drop
从左往右删除指定个数的元素
scala> var k = Array(2,3,2,3,4,5)
k: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.drop(2)
res141: Array[Int] = Array(2, 3, 4, 5)

scala> k.drop(3)
res142: Array[Int] = Array(3, 4, 5)
dropRight
从右往左删除指定个数的元素
scala> var k = Array(2,3,2,3,4,5)
k: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.dropRight(2)
res143: Array[Int] = Array(2, 3, 2, 3)
dropWhile
从左往右删除满足条件的元素,直到第一个不满足条件的元素
scala> var k = Array(2,3,2,3,4,5)
k: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.dropWhile(x => x%2==0)
res145: Array[Int] = Array(3, 2, 3, 4, 5)
endsWith
判断数组是否以某个序列结尾
scala> k
res157: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.endsWith(Array(4,5))
res159: Boolean = true
exists
判断数组是否有满足条件的元素
scala> k
res157: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.exists(_>2)
res161: Boolean = true
filter
过滤数组中不符合条件的元素,保留符合条件的元素
scala> k
res157: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.filter(_>2)
res162: Array[Int] = Array(3, 3, 4, 5)
filter
过滤数组中符合条件的元素,保留不符合条件的元素
scala> k
res157: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.filterNot(_>2)
res163: Array[Int] = Array(2, 2)
find
查找数组中第一个符合条件的元素
scala> k
res157: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.find(_>2)
res164: Option[Int] = Some(3)

scala> k.find(_>2).get
res165: Int = 3
flatMap
先对集合中的每个元素进行map,再对map后的每个元素(map后的每个元素必须还是集合)中的每个元素进行flatten
scala> b
res176: Array[Int] = Array(1, 2, 3)

scala> var f = b.flatMap(x => 0 to x)
f: Array[Int] = Array(0, 1, 0, 1, 2, 0, 1, 2, 3)
flatten
降维,将二维数组降一维,但是既有二位数组又有一维数组无法再降
scala> var f = Array(Array(1,2,3),Array(1,2,3))
f: Array[Array[Int]] = Array(Array(1, 2, 3), Array(1, 2, 3))

scala> f.flatten
res180: Array[Int] = Array(1, 2, 3, 1, 2, 3)
fold
对序列中的每个元素进行二元运算,和 aggregate类似,但是不太相同
scala> b
res181: Array[Int] = Array(1, 2, 3)

//不分区执行
scala> var c = b.fold(10)(combop)
combop执行10+1
combop执行11+2
combop执行13+3
c: Int = 16

//分区执行
scala> var c = b.par.fold(10)(combop)
combop执行10+1
combop执行10+2
combop执行10+3
combop执行12+13
combop执行11+25
c: Int = 36
foldLeft
等同于 /:
foldRight
等同于 :\
foreach
遍历数组,并进行相同的操作
scala> b
res186: Array[Int] = Array(1, 2, 3)

scala> b.foreach(x => println(x+10))
11
12
13
groupBy
将数组中的元素按指定的条件分组,并返回一个map,每个key对应一个数组
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.groupBy(_%2==0)
res190: scala.collection.immutable.Map[Boolean,Array[Int]] = Map(false -> Array(3, 3, 5), true -> Array(2, 2, 4))
grouped
将数组中的元素按指定的数量分组,并返回一个iterator
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.grouped(2)
res196: Iterator[Array[Int]] = non-empty iterator

scala> k.grouped(2).foreach(x => println(x.mkString(",")))
2,3
2,3
4,5
hasDefiniteSize
检测序列是否存在有限的长度,一般对应Stream这样的流数据,返回false
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.hasDefiniteSize
res200: Boolean = true
head
返回数组中的第一个元素
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.head
res204: Int = 2
headOption
将数组中的第一个元素转化为Option类型返回
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.headOption
res205: Option[Int] = Some(2)
indexOf
返回指定元素在数组中第一次出现的索引,没有则返回-1,第二个参数值是指定从什么位置开始往后找
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.indexOf(1)
res206: Int = -1

scala> k.indexOf(3)
res210: Int = 1

scala> k.indexOf(3,2)
res215: Int = 3
indexOfSlice
返回指定序列在数组中第一次出现的索引,没有则返回-1,第二个参数值是指定从什么位置开始往后找
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.indexOfSlice(Array(3,4))
res213: Int = 3

scala> k.indexOfSlice(Array(3,4),4)
res216: Int = -1
indexWhere
返回数组中第一个满足条件的的元素的索引,没有则返回-1,第二个参数值是指定从什么位置开始往后找
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.indexWhere(_>2)
res217: Int = 1

scala> k.indexWhere(_>2,2)
res218: Int = 3
indices
返回当前数组的索引数组
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.indices
res219: scala.collection.immutable.Range = Range(0, 1, 2, 3, 4, 5)
init
返回去除最后一个元素的新数组,或指定索引(除最后一个索引)的元素
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.init
res222: Array[Int] = Array(2, 3, 2, 3, 4)

scala> k.init(0)
res223: Int = 2

scala> k.init(3)
res224: Int = 3

scala> k.init(4)
res225: Int = 4

scala> k.init(5)
java.lang.ArrayIndexOutOfBoundsException: 5
  ... 32 elided
inits
对数组进行迭代操作,返回一个迭代器,第一个值为数组的副本,往后则依次少一个,直到最后一个值为空
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.inits.foreach(x=>println(x.mkString))
232345
23234
2323
232
23
2


intersect
求两个集合的交集
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> b
res232: Array[Int] = Array(1, 2, 3)

scala> k.intersect(b)
res233: Array[Int] = Array(2, 3)
intersect
判断数组中是否有指定索引
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.isDefinedAt(5)
res235: Boolean = true

scala> k.isDefinedAt(6)
res236: Boolean = false
isEmpty
判断数组是否为空
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.isEmpty
res238: Boolean = false

scala> var f = Array[Int]()
f: Array[Int] = Array()

scala> f.isEmpty
res239: Boolean = true
isTraversableAgain
判断序列是否可以反复遍历,一般除了iterator返回false,其他都返回true
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.isTraversableAgain
res240: Boolean = true
iterator
将数组转化为iterator
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.iterator
res243: Iterator[Int] = non-empty iterator

scala> k.iterator.foreach(x => println(x))
2
3
2
3
4
5
last
返回数组中最后一个元素
scala> b
res250: Array[Int] = Array(1, 2, 3)

scala> b.last
res249: Int = 3
lastIndexOf
返回数组中指定元素最后一次出现的索引
scala> b
res250: Array[Int] = Array(1, 2, 3)

scala> b.lastIndexOf(3)
res251: Int = 2
lastIndexOfSlice
返回数组中指定序列最后一次出现的索引
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.lastIndexOfSlice(Array(2,3))
res252: Int = 2
lastIndexOfSlice
返回数组中满足条件的元素最后一次出现的索引
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.lastIndexWhere(_>2)
res253: Int = 5
lastOption
返回数组中最后一个元素,并将其转化为Option类型
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.lastOption
res255: Option[Int] = Some(5)
length
返回数组的长度
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.length
res256: Int = 6
lengthCompare
返回数组的长度与指定数字的差值
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.lengthCompare(8)
res258: Int = -2

scala> k.lengthCompare(3)
res259: Int = 3

scala> k.lengthCompare(6)
res260: Int = 0
lift
将数组指定索引的值转为Option类型
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.lift(0)
res263: Option[Int] = Some(2)

scala> k.lift(1)
res264: Option[Int] = Some(3)
map
遍历数组,并对每个数组执行相同的操作,返回一个新数组,并显示出来(foreach不显示)
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.map(_+10)
res266: Array[Int] = Array(12, 13, 12, 13, 14, 15)
max
找出数组中的最大值
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.max
res269: Int = 5
maxBy
找出数组满足条件的第一个值
scala> l
res273: Array[Int] = Array(2, 3, 4, 1, 5)

scala> l.maxBy(_>3)
res274: Int = 4
min
找出数组中的最小值
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.min
res269: Int = 2
maxBy
找出数组不满足条件的第一个值
scala> l
res273: Array[Int] = Array(2, 3, 4, 1, 5)

scala> l.minBy(_>4)
res275: Int = 2
mkString
将数组的内容作为字符串返回,可以指定分隔符,开始字符,结束字符.与addString不一样的是mkString返回String,addString返回StringBuilder(需要先定义)
scala> l
res273: Array[Int] = Array(2, 3, 4, 1, 5)


scala> k.mkString("{",",","}")
res276: String = {2,3,2,3,4,5}

scala> k.mkString(",")
res277: String = 2,3,2,3,4,5
nonEmpty
判断数组是否非空
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> k.nonEmpty
res238: Boolean = true

scala> var f = Array[Int]()
f: Array[Int] = Array()

scala> f.nonEmpty
res239: Boolean = false
orElse
将多个偏函数组合起来使用,效果类似case语句。
scala> k
res195: Array[Int] = Array(2, 3, 2, 3, 4, 5)

scala> val pf1:PartialFunction[Int,String]={
     | case x if x%2==0 => "one"
     | }
pf1: PartialFunction[Int,String] = <function1>

scala>

scala> val pf2:PartialFunction[Int,String]={
     | case x if x%2!=0 => "two"
     | }
pf2: PartialFunction[Int,String] = <function1>

scala> k.collect
collect   collectFirst

scala> k.collect(pf1 orElse pf2)
res283: Array[String] = Array(one, two, one, two, one, two)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值