Scala中Array常用的方法(1)
创始人
2025-06-01 21:25:10

        在scala中,Array有大量的方法。定义一个数组arr后,输入arr.后按下tab,可以得到大量的方法。

  •  ++

        合并集合,并返回一个新的数组,新数组包含左右两个集合对象的内容。

var a = Array(2,1)
var b = Array(3,4)
var c = a ++ b
var c = a.++(b)

        结果如下:

  • ++:

        这个方法同上一个方法类似,两个加号后面多了一个冒号,但是返回数组类型与冒号右侧数组相同。

 val a = List(1,2)val b = scala.collection.mutable.LinkedList(3,4)val c = a ++: bval c = a.++:(b)

        运行结果如下:

  • +:

        在数组前面添加一个元素,并返回新的对象,下面添加一个元素。

var a = Array(1,2)
var b = 0 +: a

        运行结果如下:

  • :+

        同上面的方法想法,在数组末尾添加一个元素,并返回新对象。

  • /:

     对数组中所有的元素进行相同的操作 ,foldLeft的简写。

    var a = Array(2,3,4,5)
    var b = (1/:a)(_+_)
    //运算顺序为1+2+3+4+5

    运行结果如下:

  • :\

        foldRight的简写,这里从右往左进行运算。

var a = Array(2,3,4,5)
var b = (a /:1)(_-_)
//运算顺序为1-2-3-4-5
var b = (a :\1))(_-_)
//运算顺序为1-(2-(3-(4-(5-1)))))

        运行结果如下:

  • addString

        将数组中的元素逐个添加到b中,并转换为字符串。

var a = List(1,1,2,4)
var b = new StringBulider()
var c = a.addString(b)
//c的内容为 1124
var c = a.addString(b)
//c的内容为 11241124

        运行结果如下: 

         其他:

    val a = List(1,2,3,4)val b = new StringBuilder()val c = a.addString(b,",") println("c:  "+c)  // c:  1,2,3,4val a = List(1,2,3,4)val b = new StringBuilder()val c = a.addString(b,"{",",","}") println("c:  "+c)  // c:  {1,2,3,4}
  • aggregate

        聚合计算,aggregate是柯里化方法,参数是两个方法,为了方便理解,我们把aggregate的两个参数,分别封装成两个方法,并把计算过程打印出来。

def main(args: Array[String]) {val a = List(1,2,3,4)val c = a.par.aggregate(5)(seqno,combine)println("c:"+c)}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}/**seq_exp=5+3seq_exp=5+2seq_exp=5+4seq_exp=5+1com_exp=6+7com_exp=8+9com_exp=13+17c:30*/
  • apply

        取出指定索引处的元素

var b = a.apply(0)
var b = a(0)

        运行结果如下: 

  • canEqual

        判断两个对象是否可以进行比较

  • charAt

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

var c = Array('c','b','a')
var cc = c.charAt(0)

        运行结果如下:

  • clone

        创建一个数组的副本

        运行结果如下

 

  • collect

        通过执行一个并行计算(偏函数),得到一个新的数组对象

 val chars = Array('a','b','c')val newchars = chars.collect(fun)println("newchars:"+newchars.mkString(","))//我们通过下面的偏函数,把chars数组的小写a转换为大写的Aval fun:PartialFunction[Char,Char] = {case 'a' => 'A'case x => x}/**输出结果是 newchars:A,b,c */

        运行结果如下:

  • collectFirst

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

//这里继续运用上一个偏函数val chars = Array('a','b','c','a')val newchars = chars.collect(fun)val fun:PartialFunction[Char,Char] = {case 'a' => 'A'case x => x}val b = chars.collectFirst(fun)

        运行结果如下

  • combinations

        排列组合,这个排列组合会选出所有包含字符不一样的组合,对于 “abc”、“cba”,只选择一个,参数n表示序列长度,就是几个字符为一组。

    val arr = Array("a","b","c")val newarr = arr.combinations(2)newarr.foreach((item) => println(item.mkString(",")))

         运行结果如下:

  •  contains

        序列中是否包含指定对象

  • containsSlice

        判断当前序列中是否包含另一个序列

  • copyToArray

        拷贝数组中的元素

         此外,还有两种用法:    

  • corresponds

        判断两个序列长度以及对应位置元素是否符合某个条件。如果两个序列具有相同的元素数量并且p(x, y)=true,返回结果为true 。注意,如果长度不同,始终返回false

        下面代码检查a和b长度是否相等,并且a中元素是否小于b中对应位置的元素

  • count

        统计符合条件的元素个数,下面统计大于 2 的元素个数。

相关内容

热门资讯

6寸照片尺寸(6寸照片尺寸大小... 今天给各位分享6寸照片尺寸的知识,其中也会对6寸照片尺寸大小图片进行解释,如果能碰巧解决你现在面临的...
全日制和在职的是什么意思 极速... 全日制和在职的是什么意思目录全日制和在职的是什么意思全日制和在职的是什么意思在职研究生是什么意思?和...
如何退货怎么寄回去,退货怎么寄... 如何退货怎么寄回去目录如何退货怎么寄回去退货怎么寄回去给商家买家怎样寄快递回商家退货要怎么寄回去,有...
葬爱家族怎么来的,当别人说你是... 葬爱家族怎么来的目录葬爱家族怎么来的当别人说你是葬爱家族你怎么回答?葬爱小龙是葬爱家族的吗? 有人说...
如何为孩子选购儿童脚踏车(儿童... 本篇文章极速百科给大家谈谈如何为孩子选购儿童脚踏车,以及儿童脚踏车什么牌子比较好对应的知识点,希望对...
学好高中语文的方法,怎样学好高... 学好高中语文的方法目录学好高中语文的方法怎样学好高中语文?如何学好高中语文如何学好高中语文学好高中语...
家用轿车哪款比较好?家用轿车排... 今天给各位分享家用轿车哪款比较好?家用轿车排行榜前十名2022的知识,其中也会对家用轿车哪款车最实用...
海尔电视怎么调出电视模式,海尔... 海尔电视怎么调出电视模式目录海尔电视怎么调出电视模式海尔电视怎么调出电视模式?海尔电视户户通怎么切换...
北京x7的优势有哪些hhhh8... 本篇文章极速百科给大家谈谈北京x7的优势有哪些hhhh88,以及北京x7好么对应的知识点,希望对各位...
日土县属于哪个市,西藏日土县是... 日土县属于哪个市目录日土县属于哪个市西藏日土县是哪个市?西藏包括哪些地方?日土县属于哪个市日土县属于...
排放标准国一到国六的符号是什么... 排放标准国一到国六的符号是什么目录排放标准国一到国六的符号是什么排放标准国一到国六的符号分别是什么?...
处暑下雨谚语,处暑下雨的谚语 ... 处暑下雨谚语目录处暑下雨谚语处暑下雨的谚语关于下雨的农谚或俗语有哪些?关于处暑的谚语大全处暑下雨谚语...
黄骅市邮编号码市多少,河北省黄... 黄骅市邮编号码市多少目录黄骅市邮编号码市多少河北省黄骅市羊二庄镇的邮编号码是多少黄骅市旧城镇的邮政编...
书记处书记是什么职位,书记处书... 书记处书记是什么职位目录书记处书记是什么职位书记处书记是干什么的学生会书记处是做什么的?主要负责什么...
埃及的货币叫什么,在埃及可以使... 埃及的货币叫什么目录埃及的货币叫什么在埃及可以使用什么货币,可以用美金吗?非洲各国的钱叫什么名称?埃...
怎样能快速学好英语,如何有效快... 怎样能快速学好英语目录怎样能快速学好英语如何有效快速学好英语怎么才能快速轻易学好英语?英语怎么才能快...
蔷薇属植物有哪些 极速百科网 ... 蔷薇属植物有哪些目录蔷薇属植物有哪些蔷薇属植物有哪些蔷薇属植物有哪些?在城市绿化中常用的有哪几种?蔷...
econ什么专业(eco是什么... 今天给各位分享econ什么专业的知识,其中也会对eco是什么专业进行解释,如果能碰巧解决你现在面临的...
oppo手机关不了机怎么办,o... 3. 检查电源键:确认电源键是否正常使用,可锁屏亮屏排除尝试。 5. 卸载近期下载的软件:若无...
快狗打车加入条件,加入快狗打车... 快狗打车加入条件目录快狗打车加入条件加入快狗打车需要什么条件?没有车可以加入快狗打车么?快狗打车加盟...
耳顺之年是指什么年龄(耳顺之年... 本篇文章极速百科给大家谈谈耳顺之年是指什么年龄,以及耳顺之年是指什么年龄段对应的知识点,希望对各位有...
海尔洗衣机出现e1故障怎么处理... 海尔洗衣机出现e1故障怎么处理目录海尔洗衣机出现e1故障怎么处理海尔洗衣机海尔玫瑰钻XQG50-E7...
三个龙念什么,龙加三个念什么 ... 三个龙念什么目录三个龙念什么龙加三个念什么三个龙念什么?三个龙的字怎么念?三个龙念什么 这个字...
8万左右轿车哪个省油五款热门8... 本篇文章极速百科给大家谈谈8万左右轿车哪个省油五款热门8万左右轿车介绍,以及8万左右比较省油的轿车对...
网上说的sm是啥意思,sm指的... 网上说的sm是啥意思目录什么是SM?sm指的什么分别指的什么 什么是SM?SM是指“性施虐癖”(S)...
怎么查自己电脑宽带的余额,联通... 怎么查自己电脑宽带的余额目录怎么查自己电脑宽带的余额联通怎么查宽带余额?怎么查电脑宽带里剩下多少钱如...
什么叫潮汐和潮汐能 极速百科网... 什么叫潮汐和潮汐能目录什么叫潮汐和潮汐能什么叫潮汐和潮汐能潮汐能是什么?什么叫潮汐和潮汐能什么叫潮汐...
借呗额度为什么会降低,支付宝借... 借呗额度为什么会降低目录借呗额度为什么会降低支付宝借呗降额原因有哪些蚂蚁借呗额度怎么降低了 蚂蚁借呗...
河南豫剧边玉洁多大了,河南豫剧... 河南豫剧边玉洁多大了目录河南豫剧边玉洁多大了河南豫剧边玉洁多大了(河南豫剧边玉洁的老公)边玉洁的介绍...
大轮毂薄胎和小轮毂厚胎哪个比较... 今天给各位分享大轮毂薄胎和小轮毂厚胎哪个比较好?总结一下它们各自...的知识,其中也会对汽车轮毂大轮...