数组
定长数组
Array:采用()
访问,而不是[]
,下标从 0 开始。
val array1 = new Array[String](5) //创建数组
println(array1) //返回数组的hashcode
array1.length //Int = 5
array1(1) = "0mifang" //为指定的index位置的元素进行赋值
val array2 = Array("11","22","33") //不用new,直接将值写在数组中
array2(1) //取出index为1的值,String = 22
array2(1) = "dd" //修改数组中的元素
变长数组
ArrayBuffer:常用操作:+= / ++= / insert / remove / toArray / sum / max / reverse
val arrayBuffer1 = scala.collection.mutable.ArrayBuffer[String]() //创建变长数组
arrayBuffer1 += "a" //添加一个元素
arrayBuffer1 += ("b","c","d") //添加多个元素
arrayBuffer1 ++= Array("e","f","g") //添加一个现有的数组
arrayBuffer1.insert(0, 0) //在指定的位置插入指定的数据,但这种方式效率低,因为需要移动所插入位置后面的所有元素
arrayBuffer1.remove(1) //删除指定位置的数据
arrayBuffer1.remove(1, 2) //删除范围数据,从指定位置开始删除几个数据;第下标为 1 的元素开始,删除 2 个
arrayBuffer1.trimEnd(2) //从尾部截断指定个数的元素;移除最后两个
arrayBuffer1.toArray //转换为定长数组
arrayBuffer1.toBuffer //转换为变长数组
scala.util.Sorting.quickSort(arrayBuffer1) //对数组进行排序
arrayBuffer1.mkString //获取数组中的所有元素内容
arrayBuffer1.mkString(", ") //将数组中的元素按照 ", " 拼接起来
arrayBuffer1.mkString("<", ", ", ">") //将数组中的元素按照 ", " 拼接起来,并且用 “<”,“>” 包起来
arrayBuffer1.toString
转换数组
yield
使用 yield 关键字可以将结果拼接成数组返回
val array1 = Array(1, 2, 3, 4, 5)
val array2 = for (ele <- a) yield ele * ele
函数式编程
array1.filter(_ % 2 == 0).map(2 * _) //这种方式比较常见
array1.filter { _ % 2 == 0 } map { 2 * _ }
遍历数组
// 使用 for 循环和 until 遍历
for (i <- 0 until array1.length)
println(array1(i))
// 跳跃遍历
。。。
。。。