Spark学习(6)——scala数组操作
Array
在scala中,Array代表的含义与Java类似,也是长度不可变的数组,此外
由于Java和scala都是运行在JVM中,双方可以互相调用,因此scala的底层
实际上是Java数组,例如字符串的数组在底层实际上就是Java的 String [] 数组
整数数组在底层实际上是Java的int []
数组初始化后,长度就固定下来了,而且元素全部根据其类型初始化
可以直接使用Array()创建数组,元素类型自动推断
获取数组内的值
当数组内的元素类型不一致时,scala自动推断数组类型为Any
ArrayBuffer
在scala中,如需要像Java中ArrayList这种长度可变的集合类,则可以使用ArrayBuffer
ArrayBuffer类不能直接使用,使用之前需要先导入ArrayBuffer类
使用ArrayBuffer的方式可以创建一个空的ArrayBuffer
使用+=操作符,可以添加一个元素或者多个元素,这个方法在Spark源码中大量使用
使用++=操作符可以添加其他集合中的所有元素
运行结果:
使用trimEnd,可以从尾部截断指定个数的元素,b.trimEnd(5),
运行结果:
使用b.insert(3,5) 在指定位置插入元素
运行结果:
Array与ArrayBuffer互相转换
运行结果:
遍历Array和ArrayBuffer
用for循环和until遍历Array和Arraybuffer
Until是RichInt提供的函数
跳跃遍历Array和Arraybuffer
从尾部遍历Array和Arraybuffer
使用增强for循环遍历Array和ArrayBuffer
数组常见操作
数组元素求和
获取数组最大值
对数组进行排序
获取数组中所有元素内容
数组转换
对Array进行转换,获取的还是Array,对一个数组求平方,用yield
对ArrayBuffer进行转换,获取的还是ArrayBuffer
结合if守卫仅转换需要的元素
使用函数式编程转换数组,filter过滤出这个数组中除2等于0的,然后map成另一个数组,将过滤出的数乘以2
算法案例:移出第一个负数之后所有的负数
构建数组,每发现第一个负数之后的负数就移出掉
Val a =ArrayBuffer[Int]()
a += (1,2,3,4,5,-1.-3.-5,-7)
运行结果:
算法案例:移出第一个负数之后所有的负数
遍历Array和ArrayBuffer
遍历Array和ArrayBuffer
Spark学习(6)——scala数组操作相关推荐
- Spark 第三讲 Scala数组与函数基础
一. 常见数据类型 Byte 8位有符号补码整数.数值区间为 -128 到 127 Short 16位有符号补码整数.数值区间为 -32768 到 32767 Int 32位有符号补码整数.数值区间为 ...
- python运算学习之Numpy ------ 数组操作:连接数组、拆分数组 、广播机制、结构化数组、文件贮存与读写、np.where、数组去重...
数组的连接: 1 # 连接数组 2 A = np.zeros((3, 4)) 3 B = np.ones_like(A) 4 print(A, "\n-------分割符--------\n ...
- scala学习之数组操作
scala 数组分为定长数组(Array)和变长数组(ArrayBuffer): 定长数组: /*** 定长数组*/val array = new Array[Int](10) //定长数组 长度为1 ...
- Spark学习笔记[1]-scala环境安装与基本语法
Spark学习笔记[1]-scala环境安装与基本语法 正所谓工欲善其事必先利其器,Spark的开发语言不是java而是scala,虽然都是运行于JVM,但是两门语言的基本特性还是有些不一样,这里 ...
- Scala学习笔记-方便查找使用 为Spark学习打基础
Scala学习 注意 伊始 为什么是Scala 网课 环境 电脑环境安装 关于版本的声明 我的环境和版本 IDEA插件安装 IDEA关联Scala源码 基础部分1 文档注释和生成 字符串的三种输出 变 ...
- Apache Spark学习:利用Scala语言开发Spark应用程序
Spark内核是由Scala语言开发的,因此使用Scala语言开发Spark应用程序是自然而然的事情.如果你对Scala语言还不太熟悉,可以阅读网络教程 A Scala Tutorial for Ja ...
- Scala与Java差异(四)之数组操作
一.数组操作之Array.ArrayBuffer以及遍历数组 (1)Array 在Scala中,Array代表的含义与Java中类似,也是长度不可改变的数组.此外,由于Scala与Java都是运行在J ...
- SPARK学习之 --- eclipse / sbt / scala 配置
为什么80%的码农都做不了架构师?>>> 工作以及兴趣所致,开始了spark学习之旅,浏览网上大牛们的博客 文章,并且结合官网docs,刚开始云里雾里,现在也能雾里看到点花了. ...
- Java学习笔记(四):数组操作
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://mp.csdn.net/mdeditor/100728414 目录 ...
最新文章
- 深度学习中的3个秘密:集成、知识蒸馏和蒸馏
- LAMP环境搭建之rpm软件包
- 《裂变》作者爆料:欺世盗名者绝非唐骏一人
- 转Delphi中Create(nil),Create(self),Create(Application)区别
- hoj2434 going to know him
- spring boot中的注解
- 20200209:匹配子序列的单词数(leetcode792)
- word 2016 for Mac 如何缩小编号与后面文字之间的缩进间隙
- 两台服务器安装redis集群_两台服务器六节点redis集群环境搭建
- 上传,修改头像的使用
- 神经网络反向传播算法及代码实现
- skiplist及Java实现
- Office 365开启现代工作方式!协同工作保持高效率!
- 【WPS自动签到】利用云函数实现WPS自动签到获得WPS免费会员
- 苹果系统python读取文件_python中文件的读取与写入以及os模块
- 知名游戏设计师的 GitHub 仓库被删,CEO 道歉;工信部向四家公司发放 5G 牌照
- 英文文本大小写的转换
- 用于深度神经网络的语音信号预处理
- 基于vue的组织架构树组件_Vue组件基于D3.js布局显示树
- https://blog.csdn.net/xm_csdn/article/details/74419683