`
wbj0110
  • 浏览: 1598279 次
  • 性别: 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—— 12.隐式转换

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

    Scala学习之路(一)

    ### Scala学习之路(一)—— 开发环境搭建与首个程序 #### 一、Scala简介 Scala是一种多范式编程语言,旨在实现可扩展性,并融合了面向对象编程和函数式编程的最佳特性。作为一种与Java非常相似的语言,Scala能够...

    scala核心编程总结

    4. **Data Structures(数据结构)**:Scala提供了一套丰富的内置数据结构,包括但不限于数组(Array)、列表(List)、集合(Set)和映射(Map)。这些数据结构既支持不可变版本也支持可变版本,以适应不同的场景需求。 5....

    大数据课程-Scala编程基础-2.Scala语言基础_lk_edit.ppt

    《Scala编程基础——掌握大数据时代的基石》 Scala作为一门强大的函数式编程语言,因其与Java虚拟机的无缝集成,成为了大数据处理领域中的首选语言之一。本篇将详细讲解Scala的基础语法,包括变量与常量、数据类型...

    ScalaTutorial-zh_CN

    为了快速入门Scala,我们首先来看一个最经典的例子——“Hello World”。虽然这个例子简单至极,但足以让我们初步了解Scala的基本语法。 ```scala object HelloWorld { def main(args: Array[String]) { println...

    第3讲-Scala编程详解:基础语法.rar

    Scala提供了一个交互式的命令行工具——`scala`命令,允许开发者直接运行Scala代码片段,进行测试和调试。只需在终端输入`scala`,即可启动解释器。在这里,你可以立即看到代码执行的结果,这对于学习和理解新概念...

    scala-in-action_ZH_CN:《Scala in Action》中文翻译

    ###《Scala in Action》中文翻译——个人自娱,与版权无关 目 录 第一部分: 第1章: 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.2 1.2.1 1.2.2 1.3 1.3.1 1.3.2 1.4 如果你来自某种动态语言 1.4.1 静态类型才是正确的...

    spark从入门到实战

    ### Spark从入门到实战——SCALA编程篇 #### 一、大数据分析框架概要与Spark课程学习计划 在大数据时代,高效处理海量数据成为企业和组织的核心需求之一。Spark作为当前最受欢迎的大数据分析框架之一,以其高性能...

    lie:Scala 中的李代数

    李代数是由向量空间(在Scala中可以表示为数组或集合)和一个二元运算——李括号(Lie bracket)组成的。李括号满足反交换律([x,y] = -[y,x])和雅可比恒等式([x,[y,z]] + [y,[z,x]] + [z,[x,y]] = 0)。在Scala中...

    spark_hello.zip

    在这个案例中,它将包含Spark和Scala的相关依赖,例如`spark-core`、`spark-sql`以及Scala编译器等。 3. `src`:源代码目录,通常分为`src/main/scala`和`src/main/resources`两部分。前者存放Scala源代码,后者...

    common-4.17.37.Final.zip

    本文将深度探讨这个项目的核心——"common-4.17.37.Final.zip",揭示其背后的编程理念和技术实现。 首先,"case-app"的核心在于它的`case class`扩展,使得开发者可以轻松定义命令行接口。在Scala中,`case class`...

    game-of-life:Scala和Java的生活游戏

    在这个项目中,我们将探讨如何使用两种不同的编程语言——Scala和Java来实现生命游戏。Scala是一种多范式的编程语言,结合了面向对象和函数式编程的特性,而Java作为广泛使用的面向对象编程语言,其稳定性和跨平台性...

    大数据开发教程、案例及相关项目

    def main(args: Array[String]) { val spark = SparkSession.builder.appName("Simple Application").getOrCreate() val textFile = spark.sparkContext.textFile("hdfs://localhost:9000/user/yourname/input") ...

    大数据人工智能量化投资平台.pdf

    - 引用数据类型:如类(Class)、数组(Array)等。 - **运算符** - 算术运算符:+、-、*、/、%。 - 关系运算符:==、!=、>、<、>=、。 - 逻辑运算符:&&、||、!。 - **方法** - 方法是完成特定功能的一段代码...

    Spark处理数据排序问题如何避免OOM

    虽然这种方法看似简单明了,但它存在一个显著的缺陷——容易引发OOM异常。 - **问题所在**:`Iterable`是一种延迟加载的数据结构,在内存中仅保存指向数据的指针,而`List`则是一个容器型数据结构,会实际存储所有...

    PyCharm搭建Spark开发环境实现第一个pyspark程序

    - **Scala版本**:2.12.6 - **Spark版本**:2.2.1 - **Hadoop版本**:2.7.6 这些工具和环境的版本选择是为了保证开发环境的一致性和兼容性。特别是Spark与Hadoop的版本搭配尤为重要,不同的Spark版本可能支持不同...

Global site tag (gtag.js) - Google Analytics