Scala学习笔记-数组相关操作
2017-10-19 17:44
316 查看
1. 定长数组
如果需要一个长度不变的数组,可以使用scala中的Array。例如
val nums=new Array[Int](10)
val s=Array("Hello","world")
s(0)="GoodBye"
2. 变长数组:数组缓冲
对于长度需要变化的数组,Java有ArrayList,C++有vector。Scala中数据结构ArrayBuffer
在数组缓冲的尾端添加或者移除元素是一个高效的操作。但是在任意位置插入或者移除元素,并不高效,因为所有那个位置后面的元素都必须被平移
3. 遍历数组和数组缓冲
for循环遍历数组或者数组缓冲的语法:
for(i<-0 until a.length) println(i+":"+a(i))
until 是RichInt类的方法,返回所有小于(但不包括)上限的数字 , 0 until 10 实际上是: 0.until(10)
4.数组转换
scala中,对一个数组或者数组缓冲进行转换,不会修改原始数组,而是产生一个全新的数组
val a = Array(2,3,4,5)
val result = for( elem<-a) yield 2*elem
5.多维数组
例如:Double的二维数组类型为Array[Array[Double]]
val matrix=Array.ofDim[Double](3,4) //三行,四列
访问元素: matrix(row)(column)
创建不规则数组,每一行的长度各不相同:
val triangle=new Array[Array[Int]](10)
for(i<-0 until tr.length) tr(i)=new Array[Int](i+1)
6. 与java的互操作
由于scala数组是用java数组实现的,因此可以在java和scala之间来回传递
如果需要一个长度不变的数组,可以使用scala中的Array。例如
val nums=new Array[Int](10)
val s=Array("Hello","world")
s(0)="GoodBye"
2. 变长数组:数组缓冲
对于长度需要变化的数组,Java有ArrayList,C++有vector。Scala中数据结构ArrayBuffer
在数组缓冲的尾端添加或者移除元素是一个高效的操作。但是在任意位置插入或者移除元素,并不高效,因为所有那个位置后面的元素都必须被平移
3. 遍历数组和数组缓冲
for循环遍历数组或者数组缓冲的语法:
for(i<-0 until a.length) println(i+":"+a(i))
until 是RichInt类的方法,返回所有小于(但不包括)上限的数字 , 0 until 10 实际上是: 0.until(10)
4.数组转换
scala中,对一个数组或者数组缓冲进行转换,不会修改原始数组,而是产生一个全新的数组
val a = Array(2,3,4,5)
val result = for( elem<-a) yield 2*elem
5.多维数组
例如:Double的二维数组类型为Array[Array[Double]]
val matrix=Array.ofDim[Double](3,4) //三行,四列
访问元素: matrix(row)(column)
创建不规则数组,每一行的长度各不相同:
val triangle=new Array[Array[Int]](10)
for(i<-0 until tr.length) tr(i)=new Array[Int](i+1)
6. 与java的互操作
由于scala数组是用java数组实现的,因此可以在java和scala之间来回传递
相关文章推荐
- Scala学习笔记:数组操作与简单算法示例
- scala学习第三章数组相关操作
- Scala学习(三)----数组相关操作
- scala学习笔记5 spark-shell的简单操作
- Scala学习教程笔记三之函数式编程、集合操作、模式匹配、类型参数、隐式转换、Actor、
- [javase学习笔记]-5.4 数组常用操作(1)
- jQuery学习笔记--JqGrid相关操作 方法列表 备忘 重点讲解(超重要)
- Scala学习笔记15【Scala文件操作】
- php学习笔记(九)文件相关的处理操作
- redisTemplate 操作及相关配置学习笔记
- jQuery学习笔记--JqGrid相关操作 方法列表 备忘 重点讲解(超重要)
- JAVA学习笔记一:数组的基本操作
- Java基础视频教程第04天_学习笔记之数组常见操作
- Scala坑三(数组相关操作)
- Scala坑三(数组相关操作)
- jQuery学习笔记--JqGrid相关操作 方法列表(上)
- Delphi学习笔记六——文件路径相关的字符串操作
- Scala练习三数组相关操作
- Scala详解---------数组相关操作
- scala 学习笔记(02) 元组Tuple、数组Array、Map、文件读写、网页抓取示例