scala --数组相关操作
2017-02-07 22:10
246 查看
一,定长数组
Array定长数组,访问数组元素需要通过()
val nums = new Array[Int](10) //长度为10的int数组 初始化为0
val strs = new Array[String](10) //长度为10的String数组 初始化为null
val s = Array("hello","world") //初始化数组长度为2,不需要new
s(0) = "GoodBye" //访问数组元素通过()
二,变长数组
import scala.collection.mutable.ArrayBuffer
val b = ArrayBuffer[Int]()
b += 1 //在尾端添加元素 ArrayBuffer(1)
b+=(2,3,4,5) //在尾端添加多个元素 ArrayBuffer(1,2,3,4,5)
b++=ArrayBuffer(8,19,20) //可以使用++-操作符追加任意集合 ArrayBuffer(1,2,3,4,5,8,19,20)
b.trimEnd(3) //在尾部删除3个元素 ArrayBuffer(1,2,3,4,5)
b.insert(2,6) //在下标2之前插入6 ArrayBuffer(1,2,6,3,4,5)
b.insert(3,7,8,9) //在下标3之前插入7,8,9 ArrayBuffer(1,2,6,7,8,9,3,4,5)
b.remove(2) //删除下标为2的元素 ArrayBuffer(1,2,7,8,9,3,4,5)
b.remove(2,3) //从下标为2的元素开始,删除3个元素 ArrayBuffer(1,2,3,4,5)
val c = b.toArray //不知道元素个数先构建ArrayBuffer,然后再转化成数组
c.toBuffer //数组转化成数组缓冲
三,遍历数组和数组缓冲区
for(i<- 0 until b.length) //直接通过下标访问数组,until 不包括上线
for(i<- 0 until (b.length,2)) //step = 2 步长为2
for(i<- (0 until b.length).reverse) //反转
for(i<- b) //不使用数组下标直接访问元素
四、数组转换
通过for yield对数据进行转换
val a = Array(2,3,5,7,11)
val b = for(i<- a if i%2 !=0) yield i * 2 //生成一个新的数组
for(i<- b) print(i+" ")
五、常用算法
import scala.util.Sorting.quickSort
val a = Array(2,9,5,7,11)
println(a.sum)
println(a.max)
println(a.toBuffer)
println(a.mkString(" and "))
println(a.mkString("<"," and ",">"))
println(a.toBuffer.sorted) //数组本身不变,产生新的数组,升序排列
println(a.toBuffer.sortWith(_>_)) //数组本身不变,产生新的数组,降序排列
println(a.toString)
println(a.toBuffer.toString())
quickSort(a) //对数组本身排序
Array定长数组,访问数组元素需要通过()
val nums = new Array[Int](10) //长度为10的int数组 初始化为0
val strs = new Array[String](10) //长度为10的String数组 初始化为null
val s = Array("hello","world") //初始化数组长度为2,不需要new
s(0) = "GoodBye" //访问数组元素通过()
二,变长数组
import scala.collection.mutable.ArrayBuffer
val b = ArrayBuffer[Int]()
b += 1 //在尾端添加元素 ArrayBuffer(1)
b+=(2,3,4,5) //在尾端添加多个元素 ArrayBuffer(1,2,3,4,5)
b++=ArrayBuffer(8,19,20) //可以使用++-操作符追加任意集合 ArrayBuffer(1,2,3,4,5,8,19,20)
b.trimEnd(3) //在尾部删除3个元素 ArrayBuffer(1,2,3,4,5)
b.insert(2,6) //在下标2之前插入6 ArrayBuffer(1,2,6,3,4,5)
b.insert(3,7,8,9) //在下标3之前插入7,8,9 ArrayBuffer(1,2,6,7,8,9,3,4,5)
b.remove(2) //删除下标为2的元素 ArrayBuffer(1,2,7,8,9,3,4,5)
b.remove(2,3) //从下标为2的元素开始,删除3个元素 ArrayBuffer(1,2,3,4,5)
val c = b.toArray //不知道元素个数先构建ArrayBuffer,然后再转化成数组
c.toBuffer //数组转化成数组缓冲
三,遍历数组和数组缓冲区
for(i<- 0 until b.length) //直接通过下标访问数组,until 不包括上线
for(i<- 0 until (b.length,2)) //step = 2 步长为2
for(i<- (0 until b.length).reverse) //反转
for(i<- b) //不使用数组下标直接访问元素
四、数组转换
通过for yield对数据进行转换
val a = Array(2,3,5,7,11)
val b = for(i<- a if i%2 !=0) yield i * 2 //生成一个新的数组
for(i<- b) print(i+" ")
五、常用算法
import scala.util.Sorting.quickSort
val a = Array(2,9,5,7,11)
println(a.sum)
println(a.max)
println(a.toBuffer)
println(a.mkString(" and "))
println(a.mkString("<"," and ",">"))
println(a.toBuffer.sorted) //数组本身不变,产生新的数组,升序排列
println(a.toBuffer.sortWith(_>_)) //数组本身不变,产生新的数组,降序排列
println(a.toString)
println(a.toBuffer.toString())
quickSort(a) //对数组本身排序
相关文章推荐
- 快学Scala习题解答—第三章 数组相关操作
- Scala坑三(数组相关操作)
- Scala数组相关的操作
- Scala --- 第三章 数组相关操作
- 快学Scala习题解答—第三章 数组相关操作
- Scala坑三(数组相关操作)
- Scala坑三(数组相关操作)
- 快学Scala第3章--数组相关操作
- Scala坑三(数组相关操作)
- Scala学习(三)----数组相关操作
- Scala坑三(数组相关操作)
- Scala坑三(数组相关操作)
- Scala坑三(数组相关操作)
- Scala--数组相关操作
- Scala详解---------数组相关操作
- Scala坑三(数组相关操作)
- Scala坑三(数组相关操作)
- Scala坑三(数组相关操作)
- 快学Scala习题解答—第三章 数组相关操作
- 快学Scala习题解答—第三章 数组相关操作