美文网首页
Spark学习(四):Array和ArrayBuffer

Spark学习(四):Array和ArrayBuffer

作者: CocoMama190227 | 来源:发表于2019-03-01 14:17 被阅读0次

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

    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

          本文链接:https://www.haomeiwen.com/subject/yvjduqtx.html