`
wbj0110
  • 浏览: 1549617 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Scala——Array相关

阅读更多

定长数组

 

在JVM中,Scala的数组是用Java的数组一样的方式实现的。

变长数组

对应于Java的ArrayList,Scala中可变长度的数组使用的是ArrayBuffer。

其他的还是看API吧。
在ArrayBuffer尾端添加或者移除元素是高效的,但其他位置不是,所以尽可能将操作放在尾端进行。
还有Array和ArrayBuffer间的转换: b.toArray和 a.toBuffer

遍历

前面见过的for表达式还是可用的。这里再提一点更多的。

 

数组转换

通过for推导式,可以便捷生成一个新的数组。

还有一种方式,对于习惯函数式编程的人来说更加熟悉:

这里的操作都没有改变原数组,而是生成了一个新的数组。因为Scala结合了函数式编程范式,而函数式是比较排斥函数和方法的副作用的。

常用算法

 

 

多维数组

多维数组就是数组的数组,Scala中二维数组看起来就是 Array[Array[Double]]
要构建多维数组,使用 ofDim方法。

 

与Java的互操作

引入scala.collection.JavaConversions包内的隐式转换方法,就可以在代码中自动包装Scala内的数组和Java里的List等。

从Java数组类到Scala数组也是差不多的。

http://nerd-is.in/2013-08/scala-learning-working-with-array/

分享到:
评论

相关推荐

    Scala—— 3.函数

    在Scala中,方法和函数几乎可以等同(比如它们的定义、使用、运行机制都是一样的),只是函数的使用方式更加的灵活多样。函数式编程是从编程方式(范式)的角度来谈的,可以这样理解:函数式编程把函数当作一等公民,...

    Scala—— 1.变量

    Scala是一门以Java虚拟机(JVM)为运行环境并***将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言***。Scala源代码(.scala)会被编译成Java字节码(.class),然后运行在JVM上,并可以调用现有的Java...

    Scala—— 9.伴生对象apply方法

    def main(args: Array[String]): Unit = { val list = List(1, 2, 5) println(list) val pig = new Pig(狗蛋) //使用apply方法来创建对象 val pig2 = Pig(铁蛋) //自动 apply(pName: String) val pig3 = Pig...

    Scala—— 10.trait特质(接口)(未完待续)

    面向对象来看,接口并不属于面向对象的范畴,Scala是纯面向对象的语言,在Scala中,没有接口。Scala语言中,采用特质trait(特征)来代替接口的概念,也就是说,多个类具有相同的特质(特征)时,就可以将这个特质(特征)...

    Scala—— 12.隐式转换

    def main(args: Array[String]): Unit = { //编写一个隐式函数转成 Double->Int 转换 //隐式函数应当在作用域才能生效 implicit def f1(d: Double): Int = { //底层 生成 f1$1 d.toInt } implicit def f2(f: ...

    Scala—— 2. 流程控制

    1.表达式: A.条件表达式 val x = 3 val y = if(x > 1) 1 else -1 B....支持返回多种类型(前提是在不确定类型的情况下,val y:String或val y:Int这样都不行)。 val y = if(x > 1) 1 else hello ...

    IDEA集成scala(csdn)————程序.pdf

    IDEA集成scala(csdn)————程序

    scala连接redis哨兵模式 demo 使用scala的redis库(csdn)————程序.pdf

    scala连接redis哨兵模式 demo 使用scala的redis库(csdn)————程序

    邮电学院Scala大数据实时处理——基于Lambda架构的Spark源码

    项目概述:邮电学院Scala大数据实时处理——基于Lambda架构的Spark源码实践 本项目为邮电学院假期师资培训的成果,主要采用Scala语言开发,围绕Lambda架构构建了一套实时数据流处理系统。项目包含35个文件,其中...

    scala编程_完整版——带目录

    Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在Java虚拟机上,并兼容现有的Java程序。 Scala 源代码被编译成Java字节码,所以它可以运行于...

    大数据全栈开发工程师视频教程全集.rar

    大数据全栈开发工程师视频教程全集,本课程将近2000课时,从Java——数据库——Hadoop——scala——spark——hive——storm——kylin——pyspark——python——大数据面试

    Scala函数式编程

     ——Martin Odersky, Scala的作者  “Scala和Java8开发者的函数式编程指南!”  ——William E. Wheeler, TekSystems  “本书向你展示了提升Scala技能的方法和理念,它已超过‘更好的Java’。”  ——...

Global site tag (gtag.js) - Google Analytics