Scala数组操作

1. 定长数组

//10个长度的数组,所有元素初始化为0
val nums = new Array[Int](10)
//10个元素的字符串数组,所有元素初始化为null
val a = new Array[String](10)
//长度为2的Array(String)--类型是推断出来的,已提供初始值就不需要new
val s = Array("Hello","World")
//用()访问元素而不是[]
s(0) = "Goodbye"

2. 变长数组:数组缓冲

import scala.collection.mutable.ArrayBuffer
//一个空的数组缓冲,准备存放整数。
val b = ArrayBuffer[Int]()
//+=在尾端添加元素
b += 1
//在尾端添加多个元素,用括号包起来。
b += (1,2,3,4,5)
//用++=操作符追加任何集合
b ++= Array(5,6,7)
//移除最后5个元素
b.trimEnd(5)
//在小标2之前插入
b.insert(2,6)
//可以插入多个元素
b.insert(2,7,8,9)
//移除下标为2的元素
b.remove(2)
//第二个参数是移除多少个元素
b.remove(2,3)

3. 遍历数组和数组缓冲

  • 利用下标来进行遍历
for (i <- 0 until a.length)
    println(i + ": " + a(i))
  • 不需要数组下标遍历
for (elem <- a)
  println(elem)

总结一下:
其实两种遍历方式是一样的,只是第一种先生成了一个tuple然后转换成第二种形式。

4. 数组转换

利用for推到,不会改变原来的数组,只是产生了一个新的集合。
val a = Array(2,3,5,7,11)
val result = for (elem <- a) yield 2 * elem
//守卫,筛选条件的添加
for ( elem <- a if elem % 2 == 0) yield 2 * elem
// 上述问题完全可以用map,和filter代替
val result = a.map(_ * 2)
val result2 = a.filter(_  % 2 == 0)
完美,看着真舒坦啊。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容