Spark学习(四):Array和ArrayBuffer

主要内容摘自博文,点击阅读原文

Array定义定长数组,ArrayBuffer定义变长数组

上代码,一看就懂:

import scala.collection.mutable.ArrayBuffer
object ArrayAndArrayBuffer {
  def main(args: Array[String]): Unit = {
    // 定义Array方式一:
    val ary1 = new Array[Int](5)  //长度为5的整数数组,所有元素初始化为0
    val ary2 = new Array[String](5)  //长度为5的字符串数组,所有元素初始化为null
    // 定义Array方式二:
    val ary3 = Array("Hello","Spark")  //长度为2的数组,数据类型自动推断出来,已经提供初始值就不需要new关键字
    val ary4 = Array(1 to 10 : _*)
    println("数组的元素:" + ary1(0))
    ary1(0)=11  //赋值
    println("改变后数组的元素:" + ary1(0))
    ary4.foreach(println)

    println("----------------------------------------------------------")

    //  定义变长数组ArrayBuffer:
    var numArrayBuffer = new ArrayBuffer[Int]()
    // 使用 += 操作符,可以添加一个元素,或者多个元素
    numArrayBuffer += 1
    numArrayBuffer += (2, 3, 4, 5)
    // 使用 ++= 操作符,可以添加其他集合中的所有元素
    numArrayBuffer ++= Array(6, 7, 8, 9, 10)
    println(numArrayBuffer)  // 输出:ArrayBuffer(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

    // 使用insert()函数可以在指定位置插入元素
    // 但是这种操作效率很低,因为需要移动指定位置后的所有元素
    numArrayBuffer.insert(5, 12)  // 在第5个位置插入12
    println(numArrayBuffer) // 输出:ArrayBuffer(1, 2, 3, 4, 5, 12, 6, 7, 8, 9, 10)
    numArrayBuffer.insert(3, 22, 23, 24, 25)
    println(numArrayBuffer) // 输出:ArrayBuffer(1, 2, 3, 22, 23, 24, 25, 4, 5, 12, 6, 7, 8, 9, 10)

    // 使用remove()函数可以移除指定位置的元素
    numArrayBuffer.remove(1)
    println(numArrayBuffer) // 输出:ArrayBuffer(1, 3, 22, 23, 24, 25, 4, 5, 12, 6, 7, 8, 9, 10)
    numArrayBuffer.remove(1, 3)
    println(numArrayBuffer)  // 输出:ArrayBuffer(1, 24, 25, 4, 5, 12, 6, 7, 8, 9, 10)

    // Array与ArrayBuffer可以互相进行转换
    numArrayBuffer.toArray
    numArrayBuffer.toBuffer

    // 使用trimEnd()函数,可以从尾部截断指定个数的元素
    numArrayBuffer.trimEnd(5)
    println(numArrayBuffer) // 输出:ArrayBuffer(1, 24, 25, 4, 5, 12)
  }
}

你可能感兴趣的:(Spark学习(四):Array和ArrayBuffer)