1.Scala的Array

        Scala的Array表示长度不可变的数组,Array与Java中的大部分功能相同。Scala中的对应Java中的T[],例如Array[String]对应String[].Scala 的Array与Java中的不同点为Scala中的Array可以作为序列使用,通过隐式转换的方式把Scala中的数组转换成序列。    
        Scala中定义数组的四种方式如下:    
           第一种方式:new Array[T](n)。T表示定义数组的类型,n表示指定数组的长度。                               第二种方式:Array。例如定义Array(1,2,3)数组。
           第三种方式:利用数组中的方法。例如可以使用Rang填充数组。
           第四种方式:其他集合转换。例如List.toArray表示把List集合转换成数组。

object Test1 {
  // 不可变数组(默认就是)
  def main(args: Array[String]): Unit = {
    // 1.创建数组
    val arr1 = Array(1,2,3)
    // 2.查看数组的元素。根据下标:格式 数组名(下标)
    // 下标从0开始
    // 最大的下标值是 2?
    // 如果超过了最大的下标,会报错:ArrayIndexOutOfBoundsException
    println(s"arr1的第2个元素是:${arr1{1}}")
//      println(arr1(20))
    //3. 遍历
//      for, foreach, iterator
//    for(i <- arr1)println(i)

//    arr1.foreach(println)

    val it1 = arr1.iterator
    while(it1.hasNext){
      println(it1.next())
    }
  }

}

2.Scala的ArrayBuffer

        Scala中的ArrayBuffer定义方式同样有多种,这里主要介绍两种。

           第一种方式:ArrayBuffer

           第一种方式:new ArrayBuffer。

           当定义一个不可变数组时会传递一个数组的长度,表示数组长度不可变。当定义可变数组是,可以不传递数组的长度,Scala会分配一个默认的长度。当长度不够时,ArrayBuffer还会自动扩展。一般情况下会指定一个初始长度,对数组进行预判。

import scala.collection.mutable.ArrayBuffer

object Test1 {
def main(args: Array[String]): Unit = {
  val arr1 = ArrayBuffer(1,2,3,4)

  // 1.删除一个元素
  arr1 -= 4

  // 2.添加一个元素
  arr1 += 5

  // 3.修改元素。  数组名(下标) = 新值
  //3 --> 100
  arr1(2) = 100

  // 4.检查某个元素是否在数组中存在
//  println(s"数组中是否包含5:${arr1.contains(5)}")

  // 4.1找指定元素的下标:找元素2在数组中的下标是多少?
  // 如果找不到,返回-1
  //如果有多个相同的元素,返回第一个的下标
  // println(arr1.index0f(2))
  // arr1.foreach(println)

  // 5 从一个数组中 ,截取连续的一段来组成一个新的数组

  // ArrayBuffer(-1,-2,1,2,3,4,5)--> (1,2,3)

  //	ArrayBuffer(-1,-2,1,2,3,4,5).slice(截取这段的起点下	·截取这段的终点下标-不包括)
  //	val arr2= ArrayBuffer(-1,-2,1,2,3,4, 5).slice(2,5)
//  ArrayBuffer(-1, -2, 1, 2, 3, 4, 5) ---> (1, 2, 3, 4, 5)
  val arr2 = ArrayBuffer(-1, -2, 1, 2, 3, 4, 5).slice(2, 7)
  arr2.foreach(println)
}
}
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐