Scala之数组
来源:互联网 发布:淘宝推广培训学校 编辑:程序博客网 时间:2024/06/04 00:12
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之数组
- scala数据结构之数组
- scala学习之数组操作
- scala学习笔记之数组
- [scala之三]数组、映射、元组
- Scala学习之循环跟数组
- Scala学习之数组的进一步认识
- 快学scala之数组操作
- scala数组
- Scala数组
- scala-数组
- Scala:数组
- scala数组
- Scala数组
- Scala 数组
- Hibernate一对多、多对一映射
- 异常之旅
- Hibernate多对多映射
- Spark编程模型(之莎士比亚文集词频统计实现)
- Scala基本语法初探
- Scala之数组
- Scala之哈希表使用探究
- [CodeVs2645] Spore
- 浅谈UML建模
- linux下启动java程序的通用脚本2
- ListView OnScrollListener详解(滑屏分页显示数据)
- Spring之构造注入与设值注入
- Tools:downloading and Building EDK II工具篇:安装/使用EDKII源码获取/编译工具[2.3]
- Struct对齐方式