Scala中可变数组和不可变数组转换

object ArrayTest {
  /* 声明成员变量 */
  var arrayToBuffer: ArrayBuffer[String] = _
  var bufferToArray: Array[String] = _


  def main(args: Array[String]): Unit = {
    var arrayBuffer = ArrayBuffer[String]()
    arrayBuffer += "zhangsan"
    arrayBuffer += "lisi"
    println(s"arrayBuffer=$arrayBuffer")
    /* ArrayBuffer转Array,Array可以定义为成员变量 */
    bufferToArray = arrayBuffer.toArray
    println(s"bufferToArray=$bufferToArray")

    /* Array转ArrayBuffer,toBuffer返回的是mutable.Buffer[A1]是ArrayBuffer的祖先类
     * 注意需要通过asInstance强制转换
     * */
    val array = Array[String]("a", "b", "c")
    println(s"array=$array")
    arrayToBuffer = array.toBuffer.asInstanceOf[ArrayBuffer[String]]
    println(s"arrayToBuffer=$arrayToBuffer")
  }
}

注意,将Array转换成已经声明的类型为ArrayBuffer的成员变量,需要使用asInstanceOf进行强制转换

运行结果:
arrayBuffer=ArrayBuffer(zhangsan, lisi)
bufferToArray=[Ljava.lang.String;@3a82f6ef
array=[Ljava.lang.String;@100fc185
arrayToBuffer=ArrayBuffer(a, b, c)

你可能感兴趣的:(Scala,Spark)