Scala中的Array

时间:2024-11-16 08:07:11

(一)Array的定义

Array是一种在Scala中用于存储固定大小,相同类型元素的数据结构,Array是可变。可索引的数据集合。

类型有两种:Array表示长度不可变的数组,和ArrayBuffer表示长度可变的数组

package test2

import scala.collection.mutable.ArrayBuffer

object testarray {
  //不可变数组Array
//  def main(args: Array[String]): Unit = {
//    //1.创建不可变数组
//    val arr1 = Array(1,2,3)
//
//
//    //2.访问,数组名(下标)。下标是从0开始到 长度-1
//    println(s"第一个元素是 ${arr1(0)}")
    //如果下标超出范围,会 报错 ArrayIndexOutofBoundsException
//    println(arr1(100))

    //3.快速填充数组内容
    //1-10的数组,每隔两个,range不能包括终点 2 是步长
//    val arr2 = Array(1,11,2)
//
//    //4.遍历
//    for (i <- arr2){
//      println(i)
//    }
//  }
  //可变数组
    def main(args: Array[String]): Unit = {
      val arr1 = ArrayBuffer(1,2,3,2000)
      //1.添加
      arr1 += 4
      //2.删除
      arr1 -= 1
      //3.修改.数组名(下标) = 新值
      arr1(0) = 1000

      //4.查询:判断是否有某个元素
      println(s"30是否在数组中:${arr1.contains(30)}")

      //map方法
      val arr2 = arr1.map(s=> s*2)
      //filter 过滤.从当前数组中找出重要的元素,组成一个新的数组
      //找到大于100的元素
      val arr3 = arr2.filter(s => s>100)

      //数组的元素的个数
      println(s"数组的元素个数是:${arr3.length}")

      //indexOf(元素):  //找到元素下标
      //没有,就返回 -1
      //有 ,就返回第一次出现的下标
      println(arr3.indexOf(400))

      //数组的切片,从一个数组中取出相邻的元素·1组成一个新的数组
      //ArrrayBuffer(1,2,3,4,5)取出3,4组成一个新的数组
      //slice(起点下标,终点下标)  不包括终点下标!!!
//      val arr4 = ArrayBuffer(1,2,3,4,5).slice(2,4)
        val arr4 = ArrayBuffer(1,2,3,4,5).slice(1,5)//2 3 4 

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