美文网首页
Scala数组Array

Scala数组Array

作者: 喵星人ZC | 来源:发表于2019-05-31 00:50 被阅读0次

数组:一个用来装同种类型元素的框

一、定长数组

package com.soul.bigdata.scala.day04


object ArrayApp {
  def main(args: Array[String]): Unit = {

//    val a = new Array[String](5)
//    a(1) = "Spark"
//    a.foreach(print)


    //没有new的原因是apply方法 底层自动给我们new了 并把我们传的值赋值进去了
    val b = Array("Spark", "Hive", "Hadoop")
//    b.foreach(print)


    println(b.mkString)   //SparkHiveHadoop
    println(b.mkString("\t"))//Spark    Hive    Hadoop
    println(b.mkString("<","&&",">"))//<Spark&&Hive&&Hadoop>


//    val n = Array(1 to 10)

    val n = Array(1,2,3,4,5,6)
    println(n.sum)
    println(n.count(_>4))


  }
}

二、变长数组

scala> import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer

定义一个Int类型、长度为0变长数组
scala> val a = ArrayBuffer[Int]()
a: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer()

scala> a.length
res5: Int = 0
------------------------------------------------
添加元素
scala> a += 1
res6: a.type = ArrayBuffer(1)

scala> a+=(2,3,4)
res21: a.type = ArrayBuffer(1, 2, 3, 4)

scala> a += (1,2,3,4,5)
res9: a.type = ArrayBuffer(1, 1, 2, 3, 4, 5)

scala> a++=Array(6,7,8)
res22: a.type = ArrayBuffer(1, 2, 3, 4, 6, 7, 8)

#从下标为0的位置开始插入一个0 和 10
scala> a.insert(0,0,10)

scala> a
res29: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(0, 10, 1, 2, 3, 4, 6, 7, 8)
------------------------------------------------
删除元素
#删除1
scala> a-=1
res30: a.type = ArrayBuffer(0, 10, 2, 3, 4, 6, 7, 8)

#删除0
scala> a.remove(0)
res31: Int = 0
scala> a
res32: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(10, 2, 3, 4, 6, 7, 8)

#从下标0开始删除两个元素
scala> a.remove(0,2)

scala> a
res34: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(3, 4, 6, 7, 8)


#从末尾开始删除两个元素
scala> a.trimEnd(2)

scala> a
res36: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(3, 4, 6)

-------------------------------------------------------------
变长变定长数组
scala> val b = a.toArray
b: Array[Int] = Array(3, 4, 6)

#结合高级函数使用
scala> b.map(_*2).filter(_ >= 8)
res39: Array[Int] = Array(8, 12)

相关文章

网友评论

      本文标题:Scala数组Array

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