Array

51 阅读2分钟

(一)

1·Array的定义

Array 是一种在 Scala 中用于存储固定大小、相同类型元素的数据结构。它在内存中是连续存储的,这使得访问元素的速度非常快。

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

3·不可变数组

Array表示长度不可变的数组,一旦定义之后,不能再增加,删除元素

 /**
 Array 和 List 的区别

Array:有序、数组,元素在空间上连续,通过下标访问元素速度快。
List:有序、链表,元素在空间上不连续。



可变:scala.collection.mutable.ArrayBuffer
不可变:创建后不能添加、删除元素
常用方法

添加、删除、查找、循环、排序等。
*/
package array

object array01 {
    def main(args: Array[String]): Unit = {
      // 可变数组
      val arr1 = scala.collection.mutable.ArrayBuffer(1,2,3)
      // 可直接添加元素
      arr1 += 4
      println(arr1)

      // 不可变数组
      val arr2 = Array(1,2,3)
      // 不可变,不能直接添加元素
      // arr2 += 4 // 报错
      println(arr2)
    }


}

(二)

数组的常用方法(一)

package array

object array03 {
    def main(args: Array[String]): Unit = {
      // 可变数组
      val arr1 = scala.collection.mutable.ArrayBuffer(1,2,3)
      // 添加
      arr1 += 4
      arr1 += (5,6,7)
    println(arr1)
      // 删除
     // arr1 -= 4
      // 删除指定下标的元素
      //arr1.remove(0)
      //arr1.remove(0, 3) // 从指定位置开始删除,删除几个

      // 修改
      arr1(2) = 700
      println(arr1)
      // 判断是否存在
      println(arr1.contains(0)) // true
     // println(arr1.contains(0)) // false

      //println(arr1.sum) // 求和
      //arr1.foreach(ele => println(ele))
    }




}

数组的常用方法(二)

package array

object array04 {
  def main(args: Array[String]): Unit = {
    // 可变数组
    val arr1 = scala.collection.mutable.ArrayBuffer(1,2,0,-1,20,3)

    // 排序
    val arr2 = arr1.sortWith((a,b)=>a>b)

    // 切片:只取整个数组中的某个部分 slice
    val arr3 = arr1.slice(0, 3)

    // 过滤
    val arr4 = arr1.filter(x => x>0)

    // 搜索位置:查找某个元素的下标
    val target = -2
    val result = arr1.indexOf(target) // 如果没找到这个元素,就返回-1

    println(s"${target}的下标是 ${result}")

    arr4.foreach(ele => println(ele))
  }




}