Scala数组
数组是最常用的收集一系类元素的结构,其中定长数组我们使用Array,变长数组我们使用ArrayBuffer
1.创建定长数组
定长数组的声明:
val a =new Array[Int](10)
数组在声明的时候若对数组不给定值,
我们也可以在声明的时候给定值(值的类型要相同),Scala可以自动的进行类型和长度的判断。
例如:
val b=Array(1,7,2,8,3)
那么Int型的数组将初始化为0
String型的数组将被初始化为null
当然我们也可以通过下面这种方式连接两个定长数组创建一个新的数组,
当时经过本人测试下面这种方式只能生成一个新的数组
val array = Array(1, 4, 2, 3) val combine =array ++ Array(1, 2)
我们在遍历数组的时候可以使用for循环
例如:
for (i <- b) { println(i) }
当然我们也可以使用更高端一点(函数式)的打印方法
b.foreach(x => println(x))
我们也可以进行数组转换
for(elem <- b if elem %2==0) yield 2*elem
结果将返回一个新的数组,意思是获得数组中的偶数并把该数乘以2组成一个新的数组
当然我们也可以使用以下更加方便,这种是典型的函数编程方式
b.filter(_%2==0).map(_*2)
甚至我们可以这样
b.filter{_%2==0}.map{_*2}
2.变长数组的使用
val C=new ArrayBuffer[T]()声明一个全空的数组,数组长度为0
C+= e1 表示在数组尾部增加一个类型为T的元素e1 :ArrayBuffer(e1)
C+=(e2,e3) 表示在数组尾部增加一个类型为T的元素e2,e3 :ArrayBuffer(e1,e2,e3)
C++=Array(e2,e3) 表示在数组尾部增加集合Array(e2,e3) :ArrayBuffer(e1,e2,e3,e2,e3)
C.trimEnd(1) 表示移除最后一个元素 :ArrayBuffer(e1,e2,e3,e2)
3.数组的常用算法
3.1 求和: b.sum
3.2 求最大值: b.max
排序,不会对原数组进行改变而是返回一个经过排序的数组:
b.sorted(_<_) b.sorted(_>_)
3.3 当然我们也可以直接在原数组上进行排序,但是不能对数组缓冲排序(变长数组)
scala.util.Sorting.quickSort(b)
3.4 我们显示数组中的内容我们利用mkString方法
b.mkString("<",",",">")
那么就会输出:
<1,7,2,8,3>
相关推荐
### Scala里的数组方法 在Scala语言中,数组作为一种基本的数据结构,在处理大量数据时非常有用。Scala提供了丰富的数组操作方法,这些方法可以帮助开发者更高效、更简洁地进行数组的管理和操作。下面将详细介绍...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
在 Scala 中,数组和 Map 是两种非常常用的数据结构。数组用于存储同类型的固定大小的数据集合,而 Map 则用于存储键值对。接下来,我们将详细探讨数组的常见操作以及 Map 的使用方法。 **数组操作** 1. **创建...
Scala数组,基础篇
本节将深入讲解Scala中的数组操作,包括Array和ArrayBuffer的使用,以及如何遍历这些数据结构。 首先,我们来看Array。在Scala中,Array是一个固定长度的序列,一旦创建,它的大小就不能改变。它与Java中的数组类似...
Scala 常用数组集合简单总结 数组 Array-数组 //伴⽣对象创建数组 var a1=Array(1,2,3,5,4) //创建⻓度为5的数组,所有值都是0 var a2=new Array[Int](5) //获取⻓度 a1.length a2.size //修改 a1(1) = -1 a1.update...
scala中的模式匹配,还能用来匹配集合。 匹配数组 示例说明 依次修改代码定义以下三个数组 Array(1,x,y) // 以1开头,后续的两个元素不固定 Array(0) // 只匹配一个0元素的元素 Array(0, …) // 可以任意数量,但是...
函数入门之变长参数第8讲-Scala编程:函数入门之过程、lazy值和异常第9讲-Scala编程:数组操作之Array、ArrayBuffer以及遍历数组第10讲-Scala编程:数组操作之数组转换第11讲-Scala编程:Map与Tuple第12讲-Scala编程...
从头到尾逐个累加示例数组中的每个数字。初始化和为0,第一步加上第一个数字1,此时和为1。接下来第二步加上数字-2,和就变成了-1.第三步加上数字3。注意到由于此前累计的和是-1,小于0,那如果用-1加上3,得到的...
首先,Scala中的数组有两种类型:定长数组和变长数组。定长数组使用`new Array[T](length)`来创建,一旦创建,其长度就无法改变。而变长数组,如`ArrayBuffer[T]`,允许动态添加或删除元素,需要导入`scala....
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala 中使用 JSON.toJSONString 报错原因分析-解决方案 在 Scala 中使用 JSON.toJSONString 时,可能会出现ambiguous reference to overloaded definition错误,该错误的原因是由于 JSON.toJSONString 方法的重载...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...