scala函数大全

这篇具有很好参考价值的文章主要介绍了scala函数大全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

++函数,合并两个集合并且返回一个新数组,++:返回类型和:后的集合类型一样

++:函数,操纵数的类型决定返回结果的类型

+:函数,:于数组前放入元素

/:函数,执行最后一个括号内的加减乘除操作以二叉树的形式

:\函数,执行最后一个括号内的加减乘除操作以二叉树的形式

addString函数添加元素

aggregate函数:聚合分析,先使用给定参数和集合内容进行函数1操作,再将结果进行函数2操作

aggregate函数:聚合分析,先使用给定参数和集合内容进行函数1操作(按照奇数偶数进行分组操作),再将结果进行函数2操作

apply函数:取出索引处的元素

canEqual函数,比较两边,为any的子类都是true

charAt函数,获取index索引处的字符,这个方法会执行一个隐式的转换,将Array[T]转换为 ArrayCharSequence,只有当T为char类型时,这个转换才会发生。

collectFirst函数:在序列中查找第一个符合偏函数定义的元素,并执行偏函数计算

定义偏函数

combinations函数:排列组合,所有不重复的组合,结果为迭代器集,迭代器只能读一次,之后会释放内存

containsSlice函数:判断数组中是否有指定序列(包括顺序)/必须一摸一样

contains函数:判断序列中是否包含指定对象

copyToArray函数:数组导入数组/集合

copyToBuffer函数:将数组中的内容拷贝到Buffer中

corresponds函数:判断arr数组是否满足arr1条件匹配

count函数:计算符合条件的个数

diff函数:差集,计算当前数组与另一个数组的不同。将当前数组中没有在另一个数组中出现的元素返回

distinct函数:去除当前集合中重复的元素,只保留一个

drop函数:删除元素

dropRight函数:功能同 drop,去掉尾部的 n 个元素

dropWhile函数:去除当前数组中符合条件的元素,这个需要一个条件,就是从当前数组的第一个元素起,就要满足条件,直到碰到第一个不满足条件的元素结束(即使后面还有符合条件的元素),否则返回整个数组

endsWith函数:判断是否以某个序列结尾

exists函数:判断当前数组是否包含符合条件的元素

filter函数:过滤,取得当前数组中符合条件的元素,组成新的数组返回

filterNot函数:过滤,取得当前数组中不符合条件的元素,组成新的数组返回

find函数:寻找第一个符合条件的元素

flatMap函数:对当前序列的每个元素进行操作,结果放入新序列返回,参数要求是GenTraversableOnce及其子类

flatten函数:将二维数组的所有元素联合在一起,形成一个一维数组返回

fold函数:对序列中的每个元素进行二元运算,和aggregate有类似的语义,但执行过程有所不同,我们来对比一下他们的执行过程。

foldLeft函数:从左到右计算

foldRight函数:从右到左计算

forall函数:检测序列中的元素是否都满足条件 p,如果序列为空,返回true

foreach函数:检测序列中的元素是否都满足条件 p,如果序列为空,返回true

groupBy函数:按条件分组,条件由 f 匹配,返回值是Map类型,每个key对应一个序列

grouped函数:按指定数量分组,每组有 size 数量个元素,返回一个集合

hasDefiniteSize函数:检测序列是否存在有限的长度,对应Stream这样的流数据,返回false

head函数:返回序列的第一个元素,如果序列为空,将引发错误

headOption函数:返回Option类型对象,就是scala.Some 或者 None,如果序列是空,返回None

indexOf函数:返回elem在序列中的索引,可以指定从某个索引处(from)开始查找,找到第一个就返回

indexOfSlice函数:检测当前序列中是否包含另一个序列(that),并返回第一个匹配出现的元素的索引

indexWhere函数:返回当前序列中第一个满足 p 条件的元素的索引

indices函数:返回当前序列索引集合

init函数:返回当前序列中不包含最后一个元素的序列,4个元素就返回前三个元素

inits函数:对集合中的元素进行 init 操作,该操作的返回值中, 第一个值是当前序列的副本,包含当前序列所有的元素,最后一个值是空的,对头尾之间的值进行init操作,上一步的结果作为下一步的操作对象

intersect函数:取两个集合的交集,即两个集合都有的元素

isDefinedAt函数:判断序列中是否存在指定索引

isEmpty函数:判断当前序列是否为空

isTraversableAgain函数:判断序列是否可以反复遍历

iterator函数:对序列中的每个元素产生一个 iterator,迭代遍历

last函数:取得序列中最后一个元素

lastIndexOf函数:取得序列中最后一个等于elem元素的位置

lastIndexOfSlice函数:判断当前序列是否含有其他定义好的序列,并且返回最后一次出现该序列位置的索引

lastOption函数:返回当前序列中最后一个对象

length函数:返回当前序列中元素的个数

map函数:对序列中的元素进行定义好的计算操作

max函数:返回序列中最大的元素

minBy函数:返回序列中第一个符合条件的最大的元素

mkString函数:将所有元素组合成一个字符串

nonEmpty函数:判断序列不为空

padTo函数:后补齐序列,如果当前序列长度小于 len,那么新产生的序列长度是 len,多出的几个位值填充 elem,如果当前序列大于等于 len ,则返回当前序列

par函数:返回一个并行实现,产生的并行序列为val,不可被修改

partition函数:按条件将序列拆分成两个新的序列,满足条件的放到第一个序列中,其余的放到第二个序列,下面以序列元素是否是 2 的倍数来拆分

patch函数;批量替换,从原序列的 from 处开始,后面的 replaced 数量个元素,将被替换成序列 that

permutations函数:排列组合,他与combinations不同的是,组合中的内容可以相同,但是顺序不能相同,combinations不允许包含的内容相同,即使顺序不一样

prefixLength函数:给定一个条件 p,返回一个前置数列的长度,这个数列中的元素都满足 p

product函数:返回所有元素乘积的值

reduce函数:同 fold,对序列中的每个元素进行二元运算,不需要初始值

reduceLeft函数:从左向右计算

reduceRight函数:从右向左计算

reduceLeftOption函数:计算Option,参考reduceLeft

reduceRightOption函数:计算Option,参考reduceRight

reverse函数:反转序列

reverseIterator函数:反向生成迭代

reverseMap函数:同 map 方向相反

sameElements函数:判断两个序列是否顺序和对应位置上的元素都一样

scan函数:用法同 fold,scan会把每一步的计算结果放到一个新的集合中返回,而 fold 返回的是单一的值

scanLeft函数:从左向右计算

scanRight函数:从右向左计算

segmentLength函数:从序列的 from 处开始向后查找,所有满足 p 的连续元素的长度

seq函数:产生一个引用当前序列的 sequential 视图

size函数:序列元素个数,同 length

slice函数:取出当前序列中,from 到 until 之间的片段

sliding函数:从第一个元素开始,每个元素和它后面的 size - 1 个元素组成一个数组,最终组成一个新的集合返回,当剩余元素不够 size 数,则停止

sliding函数:从第一个元素开始,每个元素和它后面的 size - 1 个元素组成一个数组,最终组成一个新的集合返回,当剩余元素不够 size 数,则停止 \n该方法,可以设置步进 step,第一个元素组合完后,下一个从 上一个元素位置+step后的位置处的元素开始

sortBy函数:按指定的排序规则排序

sortWith函数:自定义排序方法

sorted函数:使用默认的排序规则对序列排序

span函数:分割序列为两个集合,从第一个元素开始,直到找到第一个不满足条件的元素止,之前的元素放到第一个集合,其它的放到第二个集合

splitAt函数:从指定位置开始,把序列拆分成两个集合

startsWith函数:从指定偏移处,是否以某个序列开始

startsWith函数:是否以某个序列开始

stringPrefix函数:返回 toString 结果的前缀

subSequence函数:返回 start 和 end 间的字符序列

sum函数:序列求和,元素需为Numeric[T]类型

tail函数:返回除了当前序列第一个元素的其它元素组成的序列

take函数:返回当前序列中前 n 个元素组成的序列

takeRight函数:返回当前序列中,从右边开始,选择 n 个元素组成的序列

takeWhile函数:返回当前序列中,从第一个元素开始,满足条件的连续元素组成的序列

toArray函数:转换成 Array 类型

toBuffer函数:转换成 Buffer 类型

toIndexedSeq函数:转换成 IndexedSeq 类型

toIterable函数:转换成可迭代的类型

toIterator函数:转换成可迭代的类型

toList函数:转换为List类型

toMap函数:同 Map 类型,需要被转化序列中包含的元素时 Tuple2 类型数据

toSeq函数:

toSet函数:

toStream函数:

toVector函数:

transpose函数:矩阵转换,二维数组行列转换

union函数:联合两个序列,同操作符 ++

unzip函数:将含有两个元素的数组,第一个元素取出组成一个序列,第二个元素组成一个序列

unzip3函数:将含有三个元素的三个数组,第一个元素取出组成一个序列,第二个元素组成一个序列,第三个元素组成一个序列

update函数:将序列中 i 索引处的元素更新为 x

updated函数:将序列中 i 索引处的元素更新为 x ,并返回替换后的数组

view函数:返回 from 到 until 间的序列,不包括 until 处的元素

withFilter函数:根据条件 p 过滤元素

zip函数:将两个序列对应位置上的元素组成一个pair序列

zipAll函数:同 zip ,但是允许两个序列长度不一样,不足的自动填充,如果当前序列端,空出的填充为 thisElem,如果 that 短,填充为 thatElem

zipWithIndex函数:序列中的每个元素和它的索引组成一个序列


++函数,合并两个集合并且返回一个新数组,++:返回类型和:后的集合类型一样

 println("++函数,合并两个集合并且返回一个新数组,++:返回类型和:后的集合类型一样")
    var numbers = Array(1, 2, 3, 4)
    var numbers2 = Array(3, 4, 5, 6)
    println((numbers ++ numbers2).mkString)

scala函数大全

++:函数,操纵数的类型决定返回结果的类型

println("++:函数,操纵数的类型决定返回结果的类型")
    val a1 = List(1, 2)
    val b1 = scala.collection.mutable.LinkedList(3, 4)
    val c1 = a1 ++: b1
    println(c1.getClass().getName())

scala函数大全

+:函数,:于数组前放入元素

println("+:函数,:于数组前放入元素")
    println((numbers +: numbers2).mkString)

scala函数大全

/:函数,执行最后一个括号内的加减乘除操作以二叉树的形式

println("/:函数,执行最后一个括号内的加减乘除操作以二叉树的形式")
    val c2 = (10 /: numbers) (_ + _) //10为初始值,从左边来加
    println(c2)

scala函数大全

:\函数,执行最后一个括号内的加减乘除操作以二叉树的形式

println(":\\函数,执行最后一个括号内的加减乘除操作以二叉树的形式")
    val c3 = (numbers :\ 10) (_ + _) //10为初始值从右边来加
    println(c3)
    var c4 = (numbers :\ 11) ((x, y) => {
      println(x, y);
      x - y
    })
    println(c4)

scala函数大全

addString函数添加元素

println("addString函数添加元素")
    numbers.addString(new StringBuilder())
    numbers.addString(new StringBuilder(), "$")
    numbers.addString(new StringBuilder(), "^")
    numbers.addString(new StringBuilder(), "(", "^", ")")

aggregate函数:聚合分析,先使用给定参数和集合内容进行函数1操作,再将结果进行函数2操作

 println("aggregate函数:聚合分析,先使用给定参数和集合内容进行函数1操作,再将结果进行函数2操作")
    println(arr.par.aggregate(5)(_ + _, _ + _)) //多线程,结果可能不准确,为16或21,慎用

scala函数大全

aggregate函数:聚合分析,先使用给定参数和集合内容进行函数1操作(按照奇数偶数进行分组操作),再将结果进行函数2操作

println("aggregate函数:聚合分析,先使用给定参数和集合内容进行函数1操作(按照奇数偶数进行分组操作),再将结果进行函数2操作")
    arr.aggregate(0)((x, y) => {
      println("left", x, y);
      x + y
    }, (x, y) => {
      println("right", x, y);
      x + y
    })

scala函数大全

apply函数:取出索引处的元素

 println("apply函数:取出索引处的元素")
    val first = numbers(0)
    println(first)

scala函数大全

canEqual函数,比较两边,为any的子类都是true

println("canEqual函数,比较两边,为any的子类都是true")
    var bool = arr.canEqual(1) //判断能不能比较两边,只要是any的子类就是true(没什么用)

charAt函数,获取index索引处的字符,这个方法会执行一个隐式的转换,将Array[T]转换为 ArrayCharSequence,只有当T为char类型时,这个转换才会发生。

println("charAt函数,获取index索引处的字符,这个方法会执行一个隐式的转换,将Array[T]转换为 ArrayCharSequence,只有当T为char类型时,这个转换才会发生。")
    var array1 = Array('a', 'b', 'c')
    val c = array1.charAt(1) == array1(1)
    var arr2 = arr :+ 124

    def abc(sz: Array[Int]) = {
      sz(1) = 100;
    }

collectFirst函数:在序列中查找第一个符合偏函数定义的元素,并执行偏函数计算

 println(" collectFirst函数:在序列中查找第一个符合偏函数定义的元素,并执行偏函数计算")
    arr.collect(pfun)
    arr.collectFirst(pfun).get //结果是Some类型的,some可以get到值(1个)
    arr.collect { case x if (x % 2 == 0) => x + 5 }
    arr.combinations(2)
    println("collect调用偏函数,通过执行一个并行计算(偏函数),得到一个新的数组对象")
    var char = Array('a', 'b', 'c')
    char.collect({ case 'a' => 'A' case x => x })
    println(char.mkString(","))
    println("将数组中所有的值通过偏函数计算得到一个新的数组对象")
    var info = Array("male", "男", "1", "female", "女", "0")
    val strings = info.collect({ case "男" => "male" case "女" => "female" case "1" => "male" case "0" => "female" })
    println(strings.mkString(","))

scala函数大全

定义偏函数

//注意地址值,注意对象的值前后变化
    //定义偏函数
    def pfun: PartialFunction[Int, Int] = {
      case x if (x % 2 == 0) => x + 5
    }

combinations函数:排列组合,所有不重复的组合,结果为迭代器集,迭代器只能读一次,之后会释放内存

//排列组合,所有不重复的组合,结果为迭代器集,迭代器只能读一次,之后会释放内存
    println("combinations函数:排列组合,所有不重复的组合,结果为迭代器集,迭代器只能读一次,之后会释放内存")
    arr.combinations(2).foreach(x => println(x.mkString(",")))
    arr.contains(2)

containsSlice函数:判断数组中是否有指定序列(包括顺序)/必须一摸一样

//判断数组中是否有指定序列(包括顺序)/必须一摸一样
    println(" containsSlice函数:判断数组中是否有指定序列(包括顺序)/必须一摸一样")
    arr.containsSlice(List(1, 2))

contains函数:判断序列中是否包含指定对象

println("contains函数:判断序列中是否包含指定对象")
    println(arr.contains(1))

scala函数大全

copyToArray函数:数组导入数组/集合

 //数组导入数组/集合
    println("copyToArray函数:数组导入数组/集合")
    var arr3 = Array(0, 0, 0, 0, 0)
    arr.copyToArray(arr3, 1, 3)
    arr3.foreach(print)

copyToBuffer函数:将数组中的内容拷贝到Buffer中

 println("copyToBuffer函数:将数组中的内容拷贝到Buffer中")
    import scala.collection.mutable.ArrayBuffer //导包
    var lst = ArrayBuffer[Int]() //指定泛型
    arr.copyToBuffer(lst);
    lst.foreach(println) //遍历输出

corresponds函数:判断arr数组是否满足arr1条件匹配

//判断是否满足条件匹配
    println("corresponds函数:判断arr数组是否满足arr1条件匹配")
    var arr1 = Array(1, 2, 3)
    arr.corresponds(arr1)(_ <= _)
    arr.corresponds(arr1)(_ >= _) //判断满足条件(同长度)
    (arr :+ 10).copyToArray(arr1)
    arr.copyToArray(arr1 :+ 10)

count函数:计算符合条件的个数

//计算符合条件的个数
    println("count函数:计算符合条件的个数")
    arr.count(x => x % 2 == 0)
    var ints = Array(5, 3, 8, 7, 9, 10, 3)
    println(ints.count(_ > 8))

scala函数大全

diff函数:差集,计算当前数组与另一个数组的不同。将当前数组中没有在另一个数组中出现的元素返回

 //差集
    println("diff函数:差集,计算当前数组与另一个数组的不同。将当前数组中没有在另一个数组中出现的元素返回")
    val a = Array(1, 2, 3, 4)
    val b = Array(4, 5, 6, 7)
    a.diff(b).foreach(println)

scala函数大全

distinct函数:去除当前集合中重复的元素,只保留一个

println("distinct函数:去除当前集合中重复的元素,只保留一个")
    val a2 = Array(1, 2, 3, 4, 4, 5, 5, 6, 6)
    val c5 = a2.distinct
    println(c5.mkString(","))

scala函数大全

drop函数:删除元素

println("drop函数:删除元素")
    arr.drop(1)

dropRight函数:功能同 drop,去掉尾部的 n 个元素

println("dropRight函数:功能同 drop,去掉尾部的 n 个元素")
    arr.dropRight(1)

dropWhile函数:去除当前数组中符合条件的元素,这个需要一个条件,就是从当前数组的第一个元素起,就要满足条件,直到碰到第一个不满足条件的元素结束(即使后面还有符合条件的元素),否则返回整个数组

println("dropWhile函数:去除当前数组中符合条件的元素,这个需要一个条件,就是从当前数组的第一个元素起,就要满足条件,直到碰到第一个不满足条件的元素结束(即使后面还有符合条件的元素),否则返回整个数组")
    val a3 = Array(3, 2, 3, 4)
    val c6 = a3.dropWhile({ x: Int => x > 2 })
    println(c6.mkString(","))

scala函数大全

endsWith函数:判断是否以某个序列结尾

println("endsWith函数:判断是否以某个序列结尾")
    val b2 = Array(3, 4)
    println(a3.endsWith(b2))

scala函数大全

exists函数:判断当前数组是否包含符合条件的元素

println("exists函数:判断当前数组是否包含符合条件的元素")
    println(a3.exists({ x: Int => x == 3 }))
    println(a3.exists({ x: Int => x == 30 }))

scala函数大全

filter函数:过滤,取得当前数组中符合条件的元素,组成新的数组返回

println("filter函数:过滤,取得当前数组中符合条件的元素,组成新的数组返回")
    println(arr.filter(x => x % 1 == 0).mkString(","))

scala函数大全

filterNot函数:过滤,取得当前数组中不符合条件的元素,组成新的数组返回

println("filterNot函数:过滤,取得当前数组中不符合条件的元素,组成新的数组返回")
    println(arr.filterNot(x => x % 2 == 0).mkString(","))

scala函数大全

find函数:寻找第一个符合条件的元素

println("find函数:寻找第一个符合条件的元素")
    println(arr.mkString(","))
    println(arr.find(_ > 1))
    arr.find({ x: Int => x > 1 })

scala函数大全

flatMap函数:对当前序列的每个元素进行操作,结果放入新序列返回,参数要求是GenTraversableOnce及其子类

println("flatMap函数:对当前序列的每个元素进行操作,结果放入新序列返回,参数要求是GenTraversableOnce及其子类")
    val b3 = a.flatMap(x => 1 to x)
    println(b3.mkString(","))

scala函数大全

flatten函数:将二维数组的所有元素联合在一起,形成一个一维数组返回

println(" flatten函数:将二维数组的所有元素联合在一起,形成一个一维数组返回")
    val dArr = Array(Array(1, 2, 3), Array(4, 5, 6))
    val c7 = dArr.flatten
    println(c7.mkString(","))

scala函数大全

fold函数:对序列中的每个元素进行二元运算,和aggregate有类似的语义,但执行过程有所不同,我们来对比一下他们的执行过程。

println("fold函数:对序列中的每个元素进行二元运算,和aggregate有类似的语义,但执行过程有所不同,我们来对比一下他们的执行过程。 ")

    def seqno(m: Int, n: Int): Int = {
      val s = "seq_exp=%d+%d"
      println(s.format(m, n))
      return m + n
    }

    def combine(m: Int, n: Int): Int = {
      val s = "com_exp=%d+%d"
      println(s.format(m, n))
      return m + n
    }

    val b4 = a.fold(5)(seqno)
    println(b4)
    val c8 = a.par.aggregate(5)(seqno, combine)
    println(c8)

scala函数大全

foldLeft函数:从左到右计算

println("foldLeft函数:从左到右计算")
    val b5 = a.foldLeft(5)(seqno)

scala函数大全

foldRight函数:从右到左计算

  println("foldRight函数:从右到左计算")
    val b6 = a.foldRight(5)(seqno)

scala函数大全

forall函数:检测序列中的元素是否都满足条件 p,如果序列为空,返回true

 println("forall函数:检测序列中的元素是否都满足条件 p,如果序列为空,返回true")
    val b7 = a.forall({ x: Int => x > 0 })
    println(b7)
    val b8 = a.forall({ x: Int => x > 2 })
    println(b8)

 scala函数大全

foreach函数:检测序列中的元素是否都满足条件 p,如果序列为空,返回true

println("foreach函数:检测序列中的元素是否都满足条件 p,如果序列为空,返回true")
    val b9 = a.foreach(x => println(x * 100))

scala函数大全

groupBy函数:按条件分组,条件由 f 匹配,返回值是Map类型,每个key对应一个序列

println("groupBy函数:按条件分组,条件由 f 匹配,返回值是Map类型,每个key对应一个序列")
    val b10 = a.groupBy(x => x match {
      case x if (x < 3) => "small"
      case _ => "big"
    })
    println(b10)

scala函数大全

grouped函数:按指定数量分组,每组有 size 数量个元素,返回一个集合

 println("grouped函数:按指定数量分组,每组有 size 数量个元素,返回一个集合")
    val b11 = a.grouped(3).toList
    b11.foreach((x) => println("第" + (b.indexOf(x) + 1) + "组:" + x.mkString(",")))

scala函数大全

hasDefiniteSize函数:检测序列是否存在有限的长度,对应Stream这样的流数据,返回false

println("hasDefiniteSize函数:检测序列是否存在有限的长度,对应Stream这样的流数据,返回false")
    println(a.hasDefiniteSize)

scala函数大全

head函数:返回序列的第一个元素,如果序列为空,将引发错误

println("head函数:返回序列的第一个元素,如果序列为空,将引发错误")
    println(a.head)

scala函数大全

headOption函数:返回Option类型对象,就是scala.Some 或者 None,如果序列是空,返回None

println("headOption函数:返回Option类型对象,就是scala.Some 或者 None,如果序列是空,返回None")
    println(a.headOption)

scala函数大全

indexOf函数:返回elem在序列中的索引,可以指定从某个索引处(from)开始查找,找到第一个就返回

println("indexOf函数:返回elem在序列中的索引,可以指定从某个索引处(from)开始查找,找到第一个就返回")
    println(a.indexOf(3))

indexOfSlice函数:检测当前序列中是否包含另一个序列(that),并返回第一个匹配出现的元素的索引

println("indexOfSlice函数:检测当前序列中是否包含另一个序列(that),并返回第一个匹配出现的元素的索引")
    val b12 = Array(2, 3)
    println(a.indexOfSlice(b11))
    println(a.indexOfSlice(b11, 3))

scala函数大全

indexWhere函数:返回当前序列中第一个满足 p 条件的元素的索引

println("indexWhere函数:返回当前序列中第一个满足 p 条件的元素的索引")
    println(a.indexWhere({ x: Int => x > 3 }))
    println(a.indexWhere({ x: Int => x > 3 }, 4))

scala函数大全

indices函数:返回当前序列索引集合

println(" indices函数:返回当前序列索引集合")
    val b13 = a.indices
    println(b13.mkString(","))

scala函数大全

init函数:返回当前序列中不包含最后一个元素的序列,4个元素就返回前三个元素

println("init函数:返回当前序列中不包含最后一个元素的序列,4个元素就返回前三个元素")
    val b15 = a.init
    println(b.mkString(","))

scala函数大全

inits函数:对集合中的元素进行 init 操作,该操作的返回值中, 第一个值是当前序列的副本,包含当前序列所有的元素,最后一个值是空的,对头尾之间的值进行init操作,上一步的结果作为下一步的操作对象

println("inits函数:对集合中的元素进行 init 操作,该操作的返回值中, 第一个值是当前序列的副本,包含当前序列所有的元素,最后一个值是空的,对头尾之间的值进行init操作,上一步的结果作为下一步的操作对象")
    val b14 = a.inits.toList
    for (i <- 1 to b14.length) {
      val s = "第%d个值:%s"
      println(s.format(i, b14(i - 1).mkString(",")))
    }

scala函数大全

intersect函数:取两个集合的交集,即两个集合都有的元素

println("intersect函数:取两个集合的交集,即两个集合都有的元素")
    //    val a = Array(1, 2, 3, 4)
    //    val b = Array(4, 5, 6, 7)
    val c9 = a.intersect(b)
    println(c9.mkString(","))

scala函数大全

isDefinedAt函数:判断序列中是否存在指定索引

println("isDefinedAt函数:判断序列中是否存在指定索引")
    //    val a = Array(1, 2, 3, 4)
    println(a.isDefinedAt(1))
    println(a.isDefinedAt(11))

scala函数大全

isEmpty函数:判断当前序列是否为空

println(" isEmpty函数:判断当前序列是否为空")
    println(a.isEmpty)

scala函数大全

isTraversableAgain函数:判断序列是否可以反复遍历

println(" isTraversableAgain函数:判断序列是否可以反复遍历")
    val b16 = a.iterator
    val b17 = a.toTraversable
    println(b16.isTraversableAgain)
    println(b17.isTraversableAgain)

scala函数大全

iterator函数:对序列中的每个元素产生一个 iterator,迭代遍历

println("iterator函数:对序列中的每个元素产生一个 iterator,迭代遍历")
    println(a.iterator.mkString(","))

scala函数大全

last函数:取得序列中最后一个元素

println("last函数:取得序列中最后一个元素")
    println(a.last)

scala函数大全

lastIndexOf函数:取得序列中最后一个等于elem元素的位置

println("lastIndexOf函数:取得序列中最后一个等于elem元素的位置")
    val a4 = Array(1, 2, 2, 3, 4, 5, 6, 8, 2, 5)
    println(a4.lastIndexOf(5))
    println("可以指定结束end的位置")
    println(a4.lastIndexOf(2, 5))

scala函数大全

lastIndexOfSlice函数:判断当前序列是否含有其他定义好的序列,并且返回最后一次出现该序列位置的索引

println("lastIndexOfSlice函数:判断当前序列是否含有其他定义好的序列,并且返回最后一次出现该序列位置的索引")
    val b18 = Array(2, 3)
    println(a4.lastIndexOfSlice(b18))
    println("也可以指定结束end的位置")
    println(a4.lastIndexOfSlice(b18, 5))

scala函数大全

lastOption函数:返回当前序列中最后一个对象

println("lastOption函数:返回当前序列中最后一个对象")
    println(a.lastOption)

scala函数大全

length函数:返回当前序列中元素的个数

println("length函数:返回当前序列中元素的个数")
    println(a.length)

scala函数大全

map函数:对序列中的元素进行定义好的计算操作

println("map函数:对序列中的元素进行定义好的计算操作")
    val b19 = a.map({ x: Int => x * 10 })
    println(b19.mkString(","))
    val a5 = Array("name", "age", "gender")
    val b20 = a5.map({ x: String => x + "no" })
    println(b20.mkString(","))

scala函数大全

max函数:返回序列中最大的元素

 println("max函数:返回序列中最大的元素")
    println(a.max)

scala函数大全

minBy函数:返回序列中第一个符合条件的最大的元素

println("minBy函数:返回序列中第一个符合条件的最大的元素")
    println(a.minBy({ x: Int => x > 1 }))

scala函数大全

mkString函数:将所有元素组合成一个字符串

println("mkString函数:将所有元素组合成一个字符串")
    println(a.mkString)
    println("将所有元素组合成一个字符串,以 sep 作为元素间的分隔符")
    println(a.mkString(","))
    println("将所有元素组合成一个字符串,以 start 开头,以 sep 作为元素间的分隔符,以 end 结尾")
    println(a.mkString("{", ",", "}"))

scala函数大全

nonEmpty函数:判断序列不为空

println(" nonEmpty函数:判断序列不为空")
    println(a.nonEmpty)

scala函数大全

padTo函数:后补齐序列,如果当前序列长度小于 len,那么新产生的序列长度是 len,多出的几个位值填充 elem,如果当前序列大于等于 len ,则返回当前序列

println("padTo函数:后补齐序列,如果当前序列长度小于 len,那么新产生的序列长度是 len,多出的几个位值填充 elem,如果当前序列大于等于 len ,则返回当前序列")
    val b21 = a.padTo(10, 81)
    println(b21.mkString(","))

scala函数大全

par函数:返回一个并行实现,产生的并行序列为val,不可被修改

println("par函数:返回一个并行实现,产生的并行序列为val,不可被修改")
    val b22 = a.par
    println(b22.mkString(","))

scala函数大全

partition函数:按条件将序列拆分成两个新的序列,满足条件的放到第一个序列中,其余的放到第二个序列,下面以序列元素是否是 2 的倍数来拆分

println(" partition函数:按条件将序列拆分成两个新的序列,满足条件的放到第一个序列中,其余的放到第二个序列,下面以序列元素是否是 2 的倍数来拆分")
    val b23: (Array[Int], Array[Int]) = a.partition({ x: Int => x % 2 == 0 })
    println(b23._1.mkString(","))
    println(b23._2.mkString(","))

scala函数大全

patch函数;批量替换,从原序列的 from 处开始,后面的 replaced 数量个元素,将被替换成序列 that

println("patch函数;批量替换,从原序列的 from 处开始,后面的 replaced 数量个元素,将被替换成序列 that")
    val b24 = Array(3, 4, 6)
    val c10 = a.patch(1, b24, 2) //从第2个元素开始取两个元素,将其替换为b24序列里面的元素
    println(c10.mkString(","))

scala函数大全

permutations函数:排列组合,他与combinations不同的是,组合中的内容可以相同,但是顺序不能相同,combinations不允许包含的内容相同,即使顺序不一样

println(" permutations函数:排列组合,他与combinations不同的是,组合中的内容可以相同,但是顺序不能相同,combinations不允许包含的内容相同,即使顺序不一样")
    val b25 = a.permutations.toList
    println(b25.mkString(","))
    val b26 = a.combinations(5).toList
    println(b26.mkString(","))

scala函数大全

prefixLength函数:给定一个条件 p,返回一个前置数列的长度,这个数列中的元素都满足 p

println("prefixLength函数:给定一个条件 p,返回一个前置数列的长度,这个数列中的元素都满足 p")
    val b27 = a.prefixLength({ x: Int => x < 4 })
    println(b27)

scala函数大全

product函数:返回所有元素乘积的值

println("product函数:返回所有元素乘积的值")
    val b28 = a.product
    println(b28)

scala函数大全

reduce函数:同 fold,对序列中的每个元素进行二元运算,不需要初始值

println("reduce函数:同 fold,对序列中的每个元素进行二元运算,不需要初始值")
    //    def seqno(m:Int,n:Int): Int ={
    //      val s ="seq_exp=%d+%d"
    //      println(s.format(m,n))
    //      return m+n
    //    }
    //    def combine(m:Int,n:Int): Int ={
    //      val s ="com_exp=%d+%d"
    //      println(s.format(m,n))
    //      return m+n
    //    }
    val b29 = a.fold(5)(seqno)
    println(b29)
    val c11 = a.reduce(seqno)
    println(c11)

scala函数大全

reduceLeft函数:从左向右计算

println("reduceLeft函数:从左向右计算")
    val c12 = a.reduceLeft(seqno)
    println(c12)

scala函数大全

reduceRight函数:从右向左计算

println("reduceRight函数:从右向左计算")
    val c13 = a.reduceRight(seqno)
    println(c13)

scala函数大全

reduceLeftOption函数:计算Option,参考reduceLeft

println("reduceLeftOption函数:计算Option,参考reduceLeft")
    val c14 = a.reduceLeftOption(seqno)
    println(c14)

scala函数大全

reduceRightOption函数:计算Option,参考reduceRight

println("reduceRightOption函数:计算Option,参考reduceRight")
    val c15 = a.reduceRightOption(seqno)
    println(c15)

scala函数大全

reverse函数:反转序列

println("reverse函数:反转序列")
    val b30 = a.reverse
    println(b30.mkString(","))

scala函数大全

reverseIterator函数:反向生成迭代

println("reverseIterator函数:反向生成迭代")
    val b31 = a.reverseIterator
    println(b31.mkString(","))

scala函数大全

reverseMap函数:同 map 方向相反

println("reverseMap函数:同 map 方向相反")
    val b32 = a.reverseMap({ x: Int => x * 10 })
    println(b32.mkString(","))

scala函数大全

sameElements函数:判断两个序列是否顺序和对应位置上的元素都一样

println("sameElements函数:判断两个序列是否顺序和对应位置上的元素都一样")
    println(a.sameElements(b))
    val c16 = Array(1, 2, 3, 4)
    println(c16.sameElements(a))

scala函数大全

scan函数:用法同 fold,scan会把每一步的计算结果放到一个新的集合中返回,而 fold 返回的是单一的值

println("scan函数:用法同 fold,scan会把每一步的计算结果放到一个新的集合中返回,而 fold 返回的是单一的值")
    val b33 = a.scan(5)(seqno)
    println(b33.mkString(","))

scala函数大全

scanLeft函数:从左向右计算

println("scanLeft函数:从左向右计算")
    val b34 = a.scanLeft(5)(seqno)
    println(b34.mkString(","))

scala函数大全

scanRight函数:从右向左计算

println("scanRight函数:从右向左计算")
    val b35 = a.scanRight(5)(seqno)
    println(b35.mkString(","))

scala函数大全

segmentLength函数:从序列的 from 处开始向后查找,所有满足 p 的连续元素的长度

println("segmentLength函数:从序列的 from 处开始向后查找,所有满足 p 的连续元素的长度")
    val a8 = Array(1, 2, 3, 1, 1, 1, 1, 1, 1, 4, 5)
    val b36 = a8.segmentLength({ x: Int => x < 3 }, 3)
    println(b36)

scala函数大全

seq函数:产生一个引用当前序列的 sequential 视图

size函数:序列元素个数,同 length

println("size函数:序列元素个数,同 length")
    println(a.size)

scala函数大全

slice函数:取出当前序列中,from 到 until 之间的片段

println("slice函数:取出当前序列中,from 到 until 之间的片段")
    val b37 = a.slice(1, 3)
    println(b37.mkString(","))

scala函数大全

sliding函数:从第一个元素开始,每个元素和它后面的 size - 1 个元素组成一个数组,最终组成一个新的集合返回,当剩余元素不够 size 数,则停止

println("sliding函数:从第一个元素开始,每个元素和它后面的 size - 1 个元素组成一个数组,最终组成一个新的集合返回,当剩余元素不够 size 数,则停止")
    val b38 = a.sliding(3).toList
    for (i <- 0 to b38.length - 1) {
      val s = "第%d个:%s"
      println(s.format(i, b38(i).mkString(",")))
    }
    println(b38.mkString(","))

 scala函数大全

sliding函数:从第一个元素开始,每个元素和它后面的 size - 1 个元素组成一个数组,最终组成一个新的集合返回,当剩余元素不够 size 数,则停止 \n该方法,可以设置步进 step,第一个元素组合完后,下一个从 上一个元素位置+step后的位置处的元素开始

println("sliding函数:从第一个元素开始,每个元素和它后面的 size - 1 个元素组成一个数组,最终组成一个新的集合返回,当剩余元素不够 size 数,则停止 \n该方法,可以设置步进 step,第一个元素组合完后,下一个从 上一个元素位置+step后的位置处的元素开始")

    val b39 = a.sliding(3, 2).toList
    for (i <- 0 to b39.length - 1) {
      val s = "第%d个:%s"
      println(s.format(i, b39(i).mkString(",")))
    }
    println(b39.mkString(","))

scala函数大全

sortBy函数:按指定的排序规则排序

println("sortBy函数:按指定的排序规则排序")
    val b40 = a.sortBy({ x: Int => x })
    println(b40.mkString(","))

scala函数大全

sortWith函数:自定义排序方法

println("sortWith函数:自定义排序方法")
    val b41 = a.sortWith(_.compareTo(_) > 0)
    println(b41.mkString(","))

scala函数大全

sorted函数:使用默认的排序规则对序列排序

println("sorted函数:使用默认的排序规则对序列排序")
    println(a.sorted.mkString(","))

scala函数大全

span函数:分割序列为两个集合,从第一个元素开始,直到找到第一个不满足条件的元素止,之前的元素放到第一个集合,其它的放到第二个集合

println("span函数:分割序列为两个集合,从第一个元素开始,直到找到第一个不满足条件的元素止,之前的元素放到第一个集合,其它的放到第二个集合")
    val b42 = a.span({ x: Int => x > 2 })
    println(b42._1.mkString(","))
    println(b42._2.mkString(","))

scala函数大全

splitAt函数:从指定位置开始,把序列拆分成两个集合

println("splitAt函数:从指定位置开始,把序列拆分成两个集合")
    val b43 = a.splitAt(2)
    println(b43._1.mkString(","))
    println(b43._2.mkString(","))

scala函数大全

startsWith函数:从指定偏移处,是否以某个序列开始

println("startsWith函数:从指定偏移处,是否以某个序列开始")
    val b44 = Array(2, 3)
    println(a.startsWith(b44, 0))

startsWith函数:是否以某个序列开始

println("startsWith函数:是否以某个序列开始")
    val b45 = Array(2, 3)
    println(a.startsWith(b45))

scala函数大全

stringPrefix函数:返回 toString 结果的前缀

println("stringPrefix函数:返回 toString 结果的前缀")
    println(a.toString())
    println(a.stringPrefix)

scala函数大全

subSequence函数:返回 start 和 end 间的字符序列

println("subSequence函数:返回 start 和 end 间的字符序列")
    val chars1 = Array('a', 'b', 'c', 'd')
    val b46 = chars1.subSequence(1, 3)
    println(b46.toString)

scala函数大全

sum函数:序列求和,元素需为Numeric[T]类型

println("sum函数:序列求和,元素需为Numeric[T]类型")
    println(a.sum)

scala函数大全

tail函数:返回除了当前序列第一个元素的其它元素组成的序列

println("tail函数:返回除了当前序列第一个元素的其它元素组成的序列")
    println(a.tail.mkString(","))

scala函数大全

take函数:返回当前序列中前 n 个元素组成的序列

println("take函数:返回当前序列中前 n 个元素组成的序列")
    println(a.take(3))

scala函数大全

takeRight函数:返回当前序列中,从右边开始,选择 n 个元素组成的序列

println("takeRight函数:返回当前序列中,从右边开始,选择 n 个元素组成的序列")
    println(a.takeRight(3).mkString(","))

scala函数大全

takeWhile函数:返回当前序列中,从第一个元素开始,满足条件的连续元素组成的序列

println("takeWhile函数:返回当前序列中,从第一个元素开始,满足条件的连续元素组成的序列")
    println(a.takeWhile({ x: Int => x < 3 }).mkString(","))

scala函数大全

toArray函数:转换成 Array 类型

println(" toArray函数:转换成 Array 类型")
    val d = ArrayBuffer(1, 2, 3, 4)
    println(d.toArray.getClass.getName)

scala函数大全

toBuffer函数:转换成 Buffer 类型

toIndexedSeq函数:转换成 IndexedSeq 类型

toIterable函数:转换成可迭代的类型

toIterator函数:转换成可迭代的类型

toList函数:转换为List类型

toMap函数:同 Map 类型,需要被转化序列中包含的元素时 Tuple2 类型数据

toSeq函数:

toSet函数:

toStream函数:

toVector函数:

transpose函数:矩阵转换,二维数组行列转换

println("f transpose函数:矩阵转换,二维数组行列转换")
    val chars2 = Array(Array("a", "b"), Array("c", "d"), Array("e", "f"))
    val b48 = chars2.transpose
    println(b48.mkString(","))

scala函数大全

union函数:联合两个序列,同操作符 ++

println("union函数:联合两个序列,同操作符 ++")
    val a12 = Array(1, 2, 3, 4, 5)
    val b49 = Array(6, 7)
    val c17 = a12.union(b49)
    println(c17.mkString(","))

scala函数大全

unzip函数:将含有两个元素的数组,第一个元素取出组成一个序列,第二个元素组成一个序列

println("unzip函数:将含有两个元素的数组,第一个元素取出组成一个序列,第二个元素组成一个序列")
    val a13 = Array(("a", "b"), ("c", "d"))
    val b50 = a13.unzip
    println(b50._1.mkString(","))
    println(b50._2.mkString(","))

scala函数大全

unzip3函数:将含有三个元素的三个数组,第一个元素取出组成一个序列,第二个元素组成一个序列,第三个元素组成一个序列

println("unzip3函数:将含有三个元素的三个数组,第一个元素取出组成一个序列,第二个元素组成一个序列,第三个元素组成一个序列")
    val a14 = Array(("a", "b", "c"), ("d", "e", "f"), ("g", "h", "y"))
    val b51 = a13.unzip
    println(b51._1.mkString(","))
    println(b51._2.mkString(","))

update函数:将序列中 i 索引处的元素更新为 x

println("update函数:将序列中 i 索引处的元素更新为 x")
    a.update(1, 9)
    println(a.mkString(","))

scala函数大全

updated函数:将序列中 i 索引处的元素更新为 x ,并返回替换后的数组

println("updated函数:将序列中 i 索引处的元素更新为 x ,并返回替换后的数组")
    println(a.updated(1, 9).mkString(","))

scala函数大全

view函数:返回 from 到 until 间的序列,不包括 until 处的元素

println(" view函数:返回 from 到 until 间的序列,不包括 until 处的元素")
    println(a.view(1, 3).mkString(","))

scala函数大全

withFilter函数:根据条件 p 过滤元素

println("withFilter函数:根据条件 p 过滤元素")
    println(a.withFilter({ x: Int => x > 3 }).map(x => x).mkString(","))

scala函数大全

zip函数:将两个序列对应位置上的元素组成一个pair序列

println("zip函数:将两个序列对应位置上的元素组成一个pair序列")
    val c20 = a.zip(b)
    println(c20.mkString(","))

scala函数大全

zipAll函数:同 zip ,但是允许两个序列长度不一样,不足的自动填充,如果当前序列端,空出的填充为 thisElem,如果 that 短,填充为 thatElem

println("zipAll函数:同 zip ,但是允许两个序列长度不一样,不足的自动填充,如果当前序列端,空出的填充为 thisElem,如果 that 短,填充为 thatElem")
    val c21 = a.zipAll(b, 9, 8)
    println(c21.mkString(","))

scala函数大全

zipWithIndex函数:序列中的每个元素和它的索引组成一个序列

println("zipWithIndex函数:序列中的每个元素和它的索引组成一个序列")
    println(a.zipWithIndex.mkString(","))

scala函数大全文章来源地址https://www.toymoban.com/news/detail-406208.html

到了这里,关于scala函数大全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Stream流 - 两个list集合对象属性的合并、对象属性值运算

    📅 合并两个 list<map>, 并将 userId 相同的所有属性合并到一个 map 中 list1中对象的属性:userId、userName list2中对象的属性:userId、gender、age 📌 最终总集合中对象的属性:userId、userName、gender、age 运行结果: 结果可见,userId 相同的所有属性合并到集合 list1中。 📅 合并两个

    2024年02月06日
    浏览(123)
  • Scala编程基础:表达式、函数、模式匹配与集合操作

    本文详细介绍了Scala编程的基础知识,包括表达式的使用,方法与函数的区别,模式匹配的各种模式,以及Scala Trait(特质)的定义和使用。

    2024年04月14日
    浏览(49)
  • Python 集合 union()函数使用详解,Python合并集合

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 小白零基础《Python入门到精通》 union() 可以 「合并」 集合 语法 参数 set :(必选)需要合并的集合 返回值 返回一个合并后的新集合 实例:合

    2024年02月16日
    浏览(34)
  • TDengine函数大全-目录

    详情见具体页面,点击进入。 1.数学函数 ABS ACOS ASIN ATAN CEIL COS FLOOR LOG POW ROUND SIN SQRT TAN 2.字符串函数 CHAR_LENGTH CONCAT CONCAT_WS LENGTH LOWER LTRIM RTRIM SUBSTR UPPER 3.转换函数 CAST TO_ISO8601 TO_UNIXTIMESTAMP TO_JSON 4.时间和日期函数 NOW TIMEDIFF TIMETRUNCATE TIMEZONE TODAY 5.聚合函数 APERCENTILE AVG COUNT E

    2024年02月10日
    浏览(41)
  • Scala集合 - Set

    水善利万物而不争,处众人之所恶,故几于道💦 一、不可变Set集合   1. 创建集合   2. 添加元素   3. 删除元素   4. 遍历集合 二、可变Set集合   1. 创建可变集合   2. 添加元素   3. 删除元素   4. 遍历集合 1. 创建集合   Set点进去是个特质,没法new,直接用伴生对象的

    2024年02月16日
    浏览(67)
  • Scala集合 - List

    水善利万物而不争,处众人之所恶,故几于道💦 一、不可变List   1. 创建List   2. 取指定的数据   3. 向List中添加元素   4. 遍历List   5. 集合间合并 - 扁平化处理 二、可变List   1. 创建可变集合对象   2. 添加元素   3. 修改元素   4. 删除元素 1. 创建List   创建一个L

    2024年02月15日
    浏览(43)
  • 第7章 Scala集合

    ​ ​ scala.collection.immutable ​ scala.collection.mutable ​ ​ 不可变数组 可变数组 多维度数组 不可变列表 可变列表 不可变Set 可变Set ​ 不可变Map 可变Map ​ 通用属性和操作 衍生集合 ​ 简单计算函数 ​ 高级计算函数 ​​ ​ 应用案例-合并Map 队列 ​ 并行集合 ​

    2024年02月10日
    浏览(43)
  • Scala集合

    scala中的集合分为两种 ,可变集合和不可变集合, 不可变集合可以安全的并发的访问! 集合的类主要在一下两个包中 可变集合包 scala.collection.mutable 不可变集合包 scala.collection.immutable 默认的 Scala 不可变集合,就是指该集合对象不可修改,每次修改就会返回一个新对象,而不会对

    2024年01月20日
    浏览(39)
  • Scala之集合(3)

      目录   WordCount案例: 需求分析与步骤: 拆分: 聚合: 格式转化: 方法1: 方法2: 排序: 方法1: 方法2: 取top3: 整体化简后的代码: WordCoount案例升级: 给定数据: 方法1: 方法2: 方法3: 并行集合:   聚合过程较为繁琐,分为以下几步: (1)先将切割后的List集合

    2023年04月24日
    浏览(35)
  • Scala之集合(2)

      目录 集合基本函数: (1)获取集合长度 (2)获取集合大小 (3)循环遍历 (4)迭代器 (5)生成字符串 (6)是否包含 衍生集合: (1)获取集合的头 (2)获取集合的尾 (3)集合最后一个数据 (4)集合初始数据 (5)反转 (6)取前(后)n 个元素 (7)去掉前(后)

    2024年02月02日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包