scala --数组相关操作

一,定长数组
  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)  //对数组本身排序


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值