本文共 18071 字,大约阅读时间需要 60 分钟。
注意:0为初始值,第一个函数的第一个下划线为初始值0第二个下划线为每个Array,意思是0+每个Array的和作为一个结果,第二个函数是进行全局累加,将局部累加的结果全部相加
scala> val list = Array(Array(1,2,3),Array(4,5,6),Array(7,8))list: Array[Array[Int]] = Array(Array(1, 2, 3), Array(4, 5, 6), Array(7, 8))scala> list.flatten.reduce(_ + _)res9: Int = 36scala> list.flatten.fold(0)(_ + _)res10: Int = 36scala> list.aggregate(0)(_ + _.sum, _ + _)res11: Int = 36
方法名 | 描述 | 返回值类型 | 举例 |
---|---|---|---|
apply(int i) | 按下标取数组数据 同a(i) | 数组元素类型 | Array(1 ,2,3,4,5).apply(3) |
++ | 合并数组返回一个新数组,若不同类型以左边为准 | 左边类型 | Array(1 ,2) ++ List(7,8,9) |
union | 合并两个序列,同操作符 ++ | 左边类型 | Array(1,2) union List(3,4) |
++: | 同上两个类似,右边类型决定了结果的类型 | 右边类型 | Array(1,2) ++: List(3,4) |
diff | 去交集 | 数组 | Array(1,2,3).diff(Array(2,4)) |
intersect | 取交集 | 数组 | Array(1,2,3).intersect(Array(2,4)) |
+: | 在数组前面添加一个元素 | 数组 | 1 +:Array(2,3) |
:+ | 在数组后面加入一个元素 | 数组 | Array(2,3):+4 |
fold | 参数是一个值和一个操作 | 操作结果 | Array(1, 2, 3, 4).fold(5)(_+_) |
foldLeft | 参数是一个值和一个操作,从左到右计算 | 操作结果 | Array(1, 2, 3, 4).foldLeft(5)(_+_) |
/: | foldLeft简写方式 | 操作结果 | (5/:Array(1, 2, 3, 4))(_+_) |
foldRight | 参数是一个值和一个操作,从右到左计算 | 操作结果 | Array(1, 2, 3, 4).foldRight(5)(_+_) |
:\ | foldRight简写 | 操作结果 | (Array(1, 2, 3, 4):\5)(_+_) |
addString | 将数组中的元素逐个添加到StringBuilder中 | StringBuilder | Array(1,2,3).addString(new StringBuilder()) |
将数组中的元素逐个添加到StringBuilder中,并用分隔符分开 | StringBuilder | Array(1,2,3).addString(new StringBuilder(),",") | |
charAt | 必须是字节数组,不常用可直接按数组下标取 | Char | Array(‘a’,‘b’).charAt(0) 单引号复制会出错手写吧 |
clone | 复制数组的值,不会引用地址 | 数组 | Array(1,2,3).clone |
collect | 参数是偏函数 | 偏函数处理后的数组 | Array(1,2).collect{case x if x%2==0 => x+1} |
collectFirst | 序列中查找第一个符合条件的元素并处理 | Option | Array(1,2).collectFirst{case x if x%2==0 => x+1} |
combinations | 对数组进行排列组合 参数为个数 | 迭代器 | Array(1,2,3).combinations(2).foreach(x=>print(x.mkString(",")+" ")) |
contains | 判断是否包含元素 | Boolean | Array(1,2).contains(1) |
containsSlice | 判断是否包含子集 | Boolean | Array(1,2,3).containsSlice(Array(2)) |
copyToArray | 数组复制,可有开始位置:目标的下标 len是原数组的长度 | Unit | val a = Array(0,0,0);Array(1,2,3).copyToArray(a,1,2) |
copyToBuffer | 将数组中的元素复制到ArrayBuffer中 | Unit | val a = new ArrayBuffer[Int];Array(1,2,3).copyToBuffer(a) |
corresponds | 判断两数组长度是否相等并且对应位置元素是否符合条件 | Boolean | Array(1, 2).corresponds(Array(2,4))(_<_) |
count | 统计符合条件的个数 | Int | Array(1,2,3).count(_<2) |
distinct | 去除重复元素 | 数组 | Array(1,1,2).distinct |
drop | 从左边去除元素 参数是长度 | 数组 | Array(1,2,3).drop(2) |
dropRight | 从右边去除元素 参数是长度 | 数组 | Array(1,2,3).dropRight(2) |
dropWhile | 去除满足条件的元素直到遇到第一个不满足的结束 | 数组 | Array(1,2,-1).dropWhile(_<2) |
endsWith | 判断数组是否以某个序列结尾 | Boolean | Array(1,2,3).endsWith(Array(2,3)) |
startsWith | 判断数组是否以某个序列开始,可有偏移量 | Boolean | Array(1,2,3).startsWith(Array(2,3),1) |
exists | 判断数组中是否存在满足条件的元素 | Boolean | Array(1,2,3).exists(_>2) |
filter | 满足条件留下不满足过滤 | 数组 | Array(1,2,3,1).filter(_ < 3) |
find | 找第一个符合条件的元素 | Option | Array(1,2,3).find(_>1) |
flatten | 扁平化处理 | 数组 | Array(Array(1,2,3),Array(4,5,6)).flatten |
flatMap | 先map然后flatten | 数组 | Array(Array(1,2),Array(4,5)).flatMap(_.map(_*2)) |
forall | 检测序列中元素是否都满足条件 都满足为true | Boolean | Array(1, 2).forall(_>0) |
foreach | 遍历操作 无返回值 | Unit | Array(1,2,3).foreach(print(_)) |
groupBy | 按条件分组 返回一个Map类型每个key对应一个数组 | Map | Array(1, 2, 3, 4).groupBy((_%2==0)) |
grouped | 按指定数量n分组,每个分组都有n个元素 | 迭代器 | Array(1, 2, 3, 4).grouped(2).foreach(x=>print(x.mkString(","))) |
hasDefiniteSize | 检测序列是否存在有限的长度,对应Stream这样的流数据则返回false | Boolean | Stream(1).hasDefiniteSize |
head | 返回第一个元素 | 元素类型 | Array(1,2,3).head |
headOption | 返回第一个元素的Option类型对象 | Option | Array(1,2,3).headOption |
indexOf(e[,i]) | 返回元素e在第一次出现的索引,可指定开始下标 | Int | Array(1,1,1).indexOf(1,1) |
indexOfSlice | 是否包含子数组有的话返回第一次开始的下标可指定开始下标 | Int | Array(1,2,3,2,3).indexOfSlice(Array(2,3,4)) |
indexWhere | 返回数组第一个满足条件的下标 可指定开始下标 | Int | Array(1,2).indexWhere(_>0,1) |
last | 返回最后一个元素 | 元素类型 | Array(1,2).last |
lastOption | 返回最后一个元素的Option类型对象 | Option | Array(1,2).lastOption |
lastIndexOf | 返回元素最后一次出现的下标可有结束下标 | Int | Array(1,1,1).lastIndexOf(1,1) |
lastIndexOfSlice | 是否包含子序列 返回最后一次出现序列的下标可有结束下标 | Int | Array(1,2,1,2).lastIndexOfSlice(Array(1,2),1) |
lastIndexWhere | 返回最后一个满足条件元素的下标 | Int | Array(1,2).lastIndexWhere(_>0) |
init | 返回不包含最后一个元素的数组 | 数组 | Array(1,2,3).init |
inits | 每一步进行init操作最开始是自己最后是空返回的是迭代器[数组] | 迭代器 | Array(1,2,3).inits.foreach(x=>print(x.mkString("[",",","]"))) |
tail | 返回不包含第一个元素的数组 | 数组 | Array(1,2,3,4).tail |
tails | 同 inits,每一步都进行 tail 操作 | 迭代器 | Array(1,2,3).tails.foreach(x=>print(x.mkString("[",",","]"))) |
isDefinedAt | 判断是否存在下标 | Boolean | Array(1,2).isDefinedAt(3) |
isEmpty | 判断是否为空 | Boolean | Array().isEmpty |
nonEmpty | 判断是否不为空 | Boolaen | Array().nonEmpty |
indices | 返回索引集合 | Range | Array(1,2).indices |
iterator | 生成迭代器 | 迭代器 | Array(1,2).iterator.foreach(print(_)) |
isTraversableAgain | 判断序列是否可以反复遍历,对于Iterators返回false | Boolean | Array(1,2).iterator.isTraversableAgain |
length | 返回数组长度 | Int | Array(1,2).length |
lengthCompare | 比较数组长度和参数len大小返回长度-len | Int | Array(1,2).lengthCompare(1) |
map | 对数组中的元素进行操作并且返回一个新数组 | 数组 | Array(1,2).map(_+10) |
max | 返回数组最大值 | 元素类型 | Array(1,2).max |
maxBy | 返回数组中符合条件的第一个元素 | 元素类型 | Array(1,2,3).maxBy(_>1) |
min | 返回数组最小值 | 元素类型 | Array(1,2).min |
minBy | 返回数组中不符合条件的第一个元素 | 元素类型 | Array(1,2,0).minBy(_>1) |
mkString | 将序列中所有元素拼接成一个字符串,可有开始符分隔符结束符 | String | Array(1,2).mkString("[",",","]") |
padTo(len,e) | 填充序列,如果当前数组长度小于len,那么新产生的数组长度是len,多出的几个位值填充e,若当前数组大于等于len返回当前数组 | 数组 | Array(1,2).padTo(5,0) |
partition | 按条件将序列拆分成两个数组,满足条件的放到第一个数组,其余的放到第二个数组,返回的是包含这两个数组的元组 | 二元组 | Array(1,2).partition(_%2==0) |
patch(i,arr,len) | 批量替换,从原序列的i处开始后面的len个元素,将被替换成数组arr | 数组 | Array(1,2,3,4).patch(0,Array(7,8),1) |
permutations | 对数组进行全排列 Ann | 迭代器 | Array(1,2,3).permutations.foreach(x=>print(x.toVector.mkString("[",",","]"))) |
prefixLength | 给定一个条件返回数组中满足条件元素的个数 | Int | Array(1, 2, 3, 4).prefixLength(_ < 3) |
product | 返回所有元素乘积的值 | 要求是数值型 | Array(1, 2, 3, 4.5).product |
reduce | 同 fold,但是参数只有操作不需要初始值 | 元素类型 | Array(1, 2, 3, 4).reduce(_ + _) |
reduceLeft | 参数只有操作不需要初始值,从左向右 | 元素类型 | Array(1, 2, 3, 4).reduceLeft(_ + _) |
reduceRight | 参数只有操作不需要初始值,从右向左 | 元素类型 | Array(1, 2, 3, 4).reduceRight(_ + _) |
reduceLeftOption | 参数只有操作不需要初始值,从左向右计算,返回一个Option | Option | Array(1, 2, 3, 4).reduceLeftOption(_ + _) |
reduceRightOption | 参数只有操作不需要初始值,从右向左 | Option | Array(1, 2, 3, 4).reduceRightOption(_ + _) |
reverse | 反转序列,可用于降序排列 | 数组 | Array(1, 4, 3, 2).sorted.reverse |
reverseIterator | 生成反向迭代器 | 迭代器 | Array(1, 2, 3).reverseIterator.foreach(print) |
reverseMap | 先map再反转 | 数组 | Array(1, 2, 3, 4).reverseMap(_*3) |
sameElements | 判断两个序列是否都相等即长度相等 对应下标元素相等 | Boolean | Array(1, 2, 3).sameElements(Array(1, 2, 3)) |
scan | 参数是一个数值和操作,会从这个数值起,把每一步的操结果放到一个新的数组中返回 | 数组 | Array(1, 2, 3).scan(4)(_ + _) |
scanLeft | 参数是一个数值和操作,会从这个数值起,把每一步的操结果(从左到右)放到一个新的数组中返回 | 数组 | Array(1, 2, 3).scanLeft(4)(_ + _) |
scanRight | 参数是一个数值和操作,会从这个数值起,把每一步的操结果(从右到左)放到一个新的数组中返回 | 数组 | Array(1, 2, 3).scanRight(4)(_ + _) |
segmentLength(f,i) | 从序列的下标i开始向后查找,返回满足条件f的连续元素的长度,直到第一个不满足条件结束 | Int | Array(1, 2, 4, 3).segmentLength(_<4,0) |
seq | 产生一个引用当前序列的sequential视图 | 视图 | Array(1, 2, 3, 4).seq |
size | 返回数组元素个数 同length | Int | Array(1, 2, 3, 4).size |
slice(i,j) | 返回当前序列中从i到j之间的序列,不包括j处的元素 | 数组 | Array(1, 2, 3, 4).slice(0,3) |
sliding(n,step) | 滑动,从第一个元素开使取参数n个元素,然后第二个直到不够n个元素结束滑动,可设置步长step即第一个元素取完不从第二个元素滑动 | 迭代器 | Array(1, 2, 3, 4).sliding(2,2).foreach(x=>print(x.mkString(",")+" ")) |
sortBy | 按指定的排序规则对序列排序 | 数组 | Array(3, 2, 1, 4).sortBy(x=>0-x) |
sorted | 自然排序,默认升序 | 数组 | Array(3, 2, 1, 4).sorted |
span | 将序列拆分成两个数组,从第一个元素开始,直到第一个不满足条件的元素为止,其中满足条件的元素放到第一个数组,其余的放到第二个数组,返回的是包含这两个数组的元组 | 二元组 | Array(1, 2, 3, 4).span(x=>x%2!=0) |
splitAt | 从指定位置开始,把数组拆分成两个数组 前一个数组不包括该下标 | 二元组 | Array(1, 2, 3, 4).splitAt(3) |
stringPrefix | 返回toString结果的前缀 | String | Array(1, 2, 3, 4).stringPrefix |
subSequence(i,j) | 返回i和j间的字符数组,不包含j处的元素 | CharSequence | Array(‘1’, ‘2’, ‘3’, ‘4’).subSequence(0,3) |
sum | 求和,元素需要是数值类型 | 元素类型 | Array(1, 2, 3, 4).sum |
take(n) | 返回当前数值中前n个元素组成的数组 | 数组 | Array(1, 2, 3, 4).take(3) |
takeRight(n) | 返回当前数组中从右边开始后n个元素组成的数组 | 数组 | Array(1, 2, 3, 4).takeRight(3) |
takeWhile | 返回从第一个元素开始,满足条件的元素组成的数组 直到第一个不满足条件的停止 | 数组 | Array(1, 2, 3, 1).takeWhile(_<=2) |
toArray | 转换成 Array 类型 | Array | List(1, 2, 3, 4).toArray |
toBuffer | 转换成Buffer类型 | Buffer | Array(1, 2, 3, 4).toBuffer |
toIndexedSeq | 转换成 IndexedSeq类型 | IndexedSeq | Array(1, 2, 3, 4).toIndexedSeq |
toIterable | 转换成可迭代的类型 | Iterable | Array(1, 2, 3, 4).toIterable |
toIterator | 转换成迭代器,同iterator方法 | Iterator | Array(1, 2, 3, 4).toIterator |
toList | 转换成 List 类型 | List | Array(1,2,3,4).toList |
toMap | 转转换成Map类型,需要被转化序列中包含的元素是 Tuple2类型 | Map | Array(1,2,3,4).map((_,1)).toMap |
toSeq | 转换成Seq类型 | Seq | Array(1,2,3,4).toSeq |
toSet | 转换成Set类型 | Set | Array(1,2,3,4).toSet |
toStream | 转换成Stream类型 | Stream | Array(1,2,3,4).toStream |
toVector | 转换成Vector类型 | Vector | Array(1,2,3,4).toVector |
transpose | 矩阵转置,二维数组行列转换 | 数组 | Array(Array(1,2,3),Array(4,5,6),Array(7,8,9)).transpose |
zip | 将两个序列对应位置上的元素组成一个元组,只取两者下标相同的 | 元组数组 | Array(1,2,3,4).zip(Array(‘a’,‘b’,‘c’,‘d’,‘e’)) |
zipAll(arr,a2,a3) | 不足的自动填充,如果前面序列短,不足的元素填充为第二个参数,如果后面短,填充为第三个参数 | 元组数组 | Array(1,2,3,4).zipAll(Array(‘a’,‘b’,‘c’,‘d’,‘e’),1,‘a’) |
zipWithIndex | 每个元素和它的下标组成一个2元组数组 | 元组数组 | Array(1,2,3,4,5).zipWithIndex |
unzip | 将含有二元组的数组,每个元组的第一个元素组成一个数组,第二个元素组成一个数组 | 二元组 | Array((1,‘a’), (2,‘b’), (3,‘c’), (4,‘d’)).unzip |
unzip3 | 将含有三元组的数组,每个元组的第一个元素组成一个数组,第二个元素组成一个数组,第三个元素组成一个数组,返回包含这三个数组的三元组 | 三元组 | Array((1,2,3),(“a”,“b”,“c”)).unzip3 |
update(i,x) | 将数组中下标i处的元素更新为x | Unit | val a = Array(1,2,3,4);a.update(0,0);a |
updated(i,x) | 将数组中下标i处的元素更新为 x,并返回替换后的数组 | 数组 | Array(1,2,3,4).updated(0,0) |
view(i,j) | 返回当前序列中从i到j之间的序列,不包括j处的元素 | IndexedSeqView | Array(1,2,3,4).view(0,3).mkString(",") |
withFilter | 根据条件p过滤元素 | FilterMonadic | Array(1, 2, 3, 4).withFilter(_>2).map(x=>x) |
Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_191).Type in expressions for evaluation. Or try :help.scala> Array(1 ,2,3,4,5).apply(3)res0: Int = 4scala> Array(1 ,2) ++ List(7,8,9)res1: Array[Int] = Array(1, 2, 7, 8, 9)scala> Array(1,2) union List(3,4)res2: Array[Int] = Array(1, 2, 3, 4)scala> Array(1,2) ++: List(3,4)res3: List[Int] = List(1, 2, 3, 4)scala> Array(1,2,3).diff(Array(2,4))res4: Array[Int] = Array(1, 3)scala> Array(1,2,3).intersect(Array(2,4))res5: Array[Int] = Array(2)scala> 1 +:Array(2,3)res6: Array[Int] = Array(1, 2, 3)scala> Array(2,3):+4res7: Array[Int] = Array(2, 3, 4)scala> Array(1, 2, 3, 4).fold(5)(_+_)res8: Int = 15scala> Array(1, 2, 3, 4).foldLeft(5)(_+_)res9: Int = 15scala> (5/:Array(1, 2, 3, 4))(_+_)res10: Int = 15scala> Array(1, 2, 3, 4).foldRight(5)(_+_)res11: Int = 15scala> (Array(1, 2, 3, 4):\5)(_+_)res12: Int = 15scala> Array(1,2,3).addString(new StringBuilder())res13: StringBuilder = 123scala> Array(1,2,3).addString(new StringBuilder(),",")res14: StringBuilder = 1,2,3scala> Array('a','b').charAt(0)res15: Char = ascala> Array(1,2,3).cloneres16: Array[Int] = Array(1, 2, 3)scala> Array(1,2).collect{ case x if x%2==0 => x+1}res17: Array[Int] = Array(3)scala> Array(1,2).collectFirst{ case x if x%2==0 => x+1}res18: Option[Int] = Some(3)scala> Array(1,2,3).combinations(2).foreach(x=>print(x.mkString(",")+" "))1,2 1,3 2,3scala> Array(1,2).contains(1)res20: Boolean = truescala> Array(1,2,3).containsSlice(Array(2))res21: Boolean = truescala> val a = Array(0,0,0);Array(1,2,3).copyToArray(a,1,2)a: Array[Int] = Array(0, 1, 2)scala> import scala.collection.mutable.ArrayBufferimport scala.collection.mutable.ArrayBufferscala> val a = Array(0,0,0);Array(1,2,3).copyToArray(a,1,2)a: Array[Int] = Array(0, 1, 2)scala> Array(1, 2).corresponds(Array(2,4))(_<_)res25: Boolean = truescala> Array(1,2,3).count(_<2)res26: Int = 1scala> Array(1,1,2).distinctres27: Array[Int] = Array(1, 2)scala> Array(1,2,3).drop(2)res28: Array[Int] = Array(3)scala> Array(1,2,3).dropRight(2)res29: Array[Int] = Array(1)scala> Array(1,2,-1).dropWhile(_<2)res30: Array[Int] = Array(2, -1)scala> Array(1,2,3).endsWith(Array(2,3))res31: Boolean = truescala> Array(1,2,3).startsWith(Array(2,3),1)res32: Boolean = truescala> Array(1,2,3).exists(_>2)res33: Boolean = truescala> Array(1,2,3,1).filter(_ < 3)res34: Array[Int] = Array(1, 2, 1)scala> Array(1,2,3).find(_>1)res35: Option[Int] = Some(2)scala> Array(Array(1,2,3),Array(4,5,6)).flattenres36: Array[Int] = Array(1, 2, 3, 4, 5, 6)scala> Array(Array(1,2),Array(4,5)).flatMap(_.map(_*2))res37: Array[Int] = Array(2, 4, 8, 10)scala> Array(1, 2).forall(_>0)res38: Boolean = truescala> Array(1,2,3).foreach(print(_))123scala> Array(1, 2, 3, 4).groupBy((_%2==0))res40: scala.collection.immutable.Map[Boolean,Array[Int]] = Map(false -> Array(1, 3), true -> Array(2, 4))scala> Array(1, 2, 3, 4).grouped(2).foreach(x=>print(x.mkString(",")))1,23,4scala> Stream(1).hasDefiniteSizeres42: Boolean = falsescala> Array(1,2,3).headres43: Int = 1scala> Array(1,2,3).headOptionres44: Option[Int] = Some(1)scala> Array(1,1,1).indexOf(1,1)res45: Int = 1scala> Array(1,2,3,2,3).indexOfSlice(Array(2,3,4))res46: Int = -1scala> Array(1,2).indexWhere(_>0,1)res47: Int = 1scala> Array(1,2).lastres48: Int = 2scala> Array(1,2).lastOptionres49: Option[Int] = Some(2)scala> Array(1,1,1).lastIndexOf(1,1)res50: Int = 1scala> Array(1,2,1,2).lastIndexOfSlice(Array(1,2),1)res51: Int = 0scala> Array(1,2).lastIndexWhere(_>0)res52: Int = 1scala> Array(1,2,3).initres53: Array[Int] = Array(1, 2)scala> Array(1,2,3).inits.foreach(x=>print(x.mkString("[",",","]")))[1,2,3][1,2][1][]scala> Array(1,2,3,4).tailres55: Array[Int] = Array(2, 3, 4)scala> Array(1,2,3).tails.foreach(x=>print(x.mkString("[",",","]")))[1,2,3][2,3][3][]scala> Array(1,2).isDefinedAt(3)res57: Boolean = falsescala> Array().isEmptyres58: Boolean = truescala> Array().nonEmptyres59: Boolean = falsescala> Array(1,2).indicesres60: scala.collection.immutable.Range = Range(0, 1)scala> Array(1,2).iterator.foreach(print(_))12scala> Array(1,2).iterator.isTraversableAgainres62: Boolean = falsescala> Array(1,2).lengthres63: Int = 2scala> Array(1,2).lengthCompare(1)res64: Int = 1scala> Array(1,2).map(_+10)res65: Array[Int] = Array(11, 12)scala> Array(1,2).maxres66: Int = 2scala> Array(1,2,3).maxBy(_>1)res67: Int = 2scala> Array(1,2).minres68: Int = 1scala> Array(1,2,0).minBy(_>1)res69: Int = 1scala> Array(1,2).mkString("[",",","]")res70: String = [1,2]scala> Array(1,2).padTo(5,0)res71: Array[Int] = Array(1, 2, 0, 0, 0)scala> Array(1,2).partition(_%2==0)res72: (Array[Int], Array[Int]) = (Array(2),Array(1))scala> Array(1,2,3,4).patch(0,Array(7,8),1)res73: Array[Int] = Array(7, 8, 2, 3, 4)scala> Array(1,2,3).permutations.foreach(x=>print(x.toVector.mkString("[",",","]")))[1,2,3][1,3,2][2,1,3][2,3,1][3,1,2][3,2,1]scala> Array(1, 2, 3, 4).prefixLength(_ < 3)res75: Int = 2scala> Array(1, 2, 3, 4.5).productres76: Double = 27.0scala> Array(1, 2, 3, 4).reduce(_ + _)res77: Int = 10scala> Array(1, 2, 3, 4).reduceLeft(_ + _)res78: Int = 10scala> Array(1, 2, 3, 4).reduceRight(_ + _)res79: Int = 10scala> Array(1, 2, 3, 4).reduceLeftOption(_ + _)res80: Option[Int] = Some(10)scala> Array(1, 2, 3, 4).reduceRightOption(_ + _)res81: Option[Int] = Some(10)scala> Array(1, 4, 3, 2).sorted.reverseres82: Array[Int] = Array(4, 3, 2, 1)scala> Array(1, 2, 3).reverseIterator.foreach(print)321scala> Array(1, 2, 3, 4).reverseMap(_*3)res84: Array[Int] = Array(12, 9, 6, 3)scala> Array(1, 2, 3).sameElements(Array(1, 2, 3))res85: Boolean = truescala> Array(1, 2, 3).scan(4)(_ + _)res86: Array[Int] = Array(4, 5, 7, 10)scala> Array(1, 2, 3).scanLeft(4)(_ + _)res87: Array[Int] = Array(4, 5, 7, 10)scala> Array(1, 2, 3).scanRight(4)(_ + _)res88: Array[Int] = Array(10, 9, 7, 4)scala> Array(1, 2, 4, 3).segmentLength(_<4,0)res89: Int = 2scala> Array(1, 2, 3, 4).seqres90: scala.collection.mutable.IndexedSeq[Int] = WrappedArray(1, 2, 3, 4)scala> Array(1, 2, 3, 4).sizeres91: Int = 4scala> Array(1, 2, 3, 4).slice(0,3)res92: Array[Int] = Array(1, 2, 3)scala> Array(1, 2, 3, 4).sliding(2,2).foreach(x=>print(x.mkString(",")+" "))1,2 3,4scala> Array(3, 2, 1, 4).sortBy(x=>0-x)res94: Array[Int] = Array(4, 3, 2, 1)scala> Array(3, 2, 1, 4).sortedres95: Array[Int] = Array(1, 2, 3, 4)scala> Array(1, 2, 3, 4).span(x=>x%2!=0)res96: (Array[Int], Array[Int]) = (Array(1),Array(2, 3, 4))scala> Array(1, 2, 3, 4).splitAt(3)res97: (Array[Int], Array[Int]) = (Array(1, 2, 3),Array(4))scala> Array(1, 2, 3, 4).stringPrefixres98: String = [Iscala> Array('1','2','3','4').subSequence(0,3)res99: CharSequence = 123scala> Array(1, 2, 3, 4).sumres100: Int = 10scala> Array(1, 2, 3, 4).take(3)res101: Array[Int] = Array(1, 2, 3)scala> Array(1, 2, 3, 4).takeRight(3)res102: Array[Int] = Array(2, 3, 4)scala> Array(1, 2, 3, 1).takeWhile(_<=2)res103: Array[Int] = Array(1, 2)scala> List(1, 2, 3, 4).toArrayres104: Array[Int] = Array(1, 2, 3, 4)scala> Array(1, 2, 3, 4).toBufferres105: scala.collection.mutable.Buffer[Int] = ArrayBuffer(1, 2, 3, 4)scala> Array(1, 2, 3, 4).toIndexedSeqres106: scala.collection.immutable.IndexedSeq[Int] = Vector(1, 2, 3, 4)scala> Array(1, 2, 3, 4).toIterableres107: Iterable[Int] = WrappedArray(1, 2, 3, 4)scala> Array(1, 2, 3, 4).toIteratorres108: Iterator[Int] = non-empty iteratorscala> Array(1,2,3,4).toListres109: List[Int] = List(1, 2, 3, 4)scala> Array(1,2,3,4).map((_,1)).toMapres110: scala.collection.immutable.Map[Int,Int] = Map(1 -> 1, 2 -> 1, 3 -> 1, 4 -> 1)scala> Array(1,2,3,4).toSeqres111: Seq[Int] = WrappedArray(1, 2, 3, 4)scala> Array(1,2,3,4).toSetres112: scala.collection.immutable.Set[Int] = Set(1, 2, 3, 4)scala> Array(1,2,3,4).toStreamres113: scala.collection.immutable.Stream[Int] = Stream(1, ?)scala> Array(1,2,3,4).toVectorres114: Vector[Int] = Vector(1, 2, 3, 4)scala> Array(Array(1,2,3),Array(4,5,6),Array(7,8,9)).transposeres115: Array[Array[Int]] = Array(Array(1, 4, 7), Array(2, 5, 8), Array(3, 6, 9))scala> Array(1,2,3,4).zip(Array('a','b','c','d','e'))res116: Array[(Int, Char)] = Array((1,a), (2,b), (3,c), (4,d))scala> Array(1,2,3,4).zipAll(Array('a','b','c','d','e'),1,'a')res117: Array[(Int, Char)] = Array((1,a), (2,b), (3,c), (4,d), (1,e))scala> Array(1,2,3,4,5).zipWithIndexres118: Array[(Int, Int)] = Array((1,0), (2,1), (3,2), (4,3), (5,4))scala> Array((1,'a'),(2,'b'),(3,'c'),(4,'d')).unzipres119: (Array[Int], Array[Char]) = (Array(1, 2, 3, 4),Array(a, b, c, d))scala> Array((1,2,3),("a","b","c")).unzip3res120: (Array[Any], Array[Any], Array[Any]) = (Array(1, a),Array(2, b),Array(3, c))scala> val a = Array(1,2,3,4);a.update(0,0);aa: Array[Int] = Array(0, 2, 3, 4)res121: Array[Int] = Array(0, 2, 3, 4)scala> Array(1,2,3,4).updated(0,0)res122: Array[Int] = Array(0, 2, 3, 4)scala> Array(1,2,3,4).view(0,3).mkString(",")res123: String = 1,2,3scala> Array(1, 2, 3, 4).withFilter(_>2).map(x=>x)res124: Array[Int] = Array(3, 4)
转载地址:http://rcjxi.baihongyu.com/