11.14 Scala的Array

数组:物理空间上连续的(一个挨着一个)

优势:根据下标,能快速找到元素

列表:物理空间上不连续(不是一个元素挨着一个元素的!)

优势:插入元素,删除比较快

不可变数组:

Scala 复制代码
object Test_Array_1 {
  //不可变数组(默认就是)
  def main(args: Array[String]): Unit = {
    //1.创建数组
    val arr1 = Array(1,2,3)
    //2.查看数组的元素。根据下标:格式 数组名(下标)
    //下标从0开始
    //如果超过了最大的下标,会报错: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())
    }
  }
}

可变数组:

Scala 复制代码
import scala.collection.mutable.ArrayBuffer

object Test_Array_1 {
//  //不可变数组(默认就是)
//  def main(args: Array[String]): Unit = {
//    //1.创建数组
//    val arr1 = Array(1,2,3)
//    //2.查看数组的元素。根据下标:格式 数组名(下标)
//    //下标从0开始
//    //如果超过了最大的下标,会报错: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())
//    }
//  }
  // 可变数组
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.indexOf(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)
}
}
相关推荐
a8a3023 分钟前
Spring Boot(快速上手)
java·spring boot·后端
华科易迅3 分钟前
MybatisPlus乐观锁
java·开发语言·mybatis
迈巴赫车主9 分钟前
错位排序算法
开发语言·数据结构·算法·排序算法
武子康15 分钟前
大数据-258 离线数仓 - Livy与Griffin编译安装指南:大数据环境配置实战
大数据·hadoop·后端
野犬寒鸦17 分钟前
Redis复习记录Day03
服务器·redis·后端·面试·bootstrap·mybatis
GreatSQL32 分钟前
一文搞懂 MySQL/GreateSQL 只读参数:read_only 参数核心区别
后端
羊小猪~~36 分钟前
【QT】-- 模型与视图简介
开发语言·数据库·c++·后端·qt·前端框架·个人开发
叶微信37 分钟前
Qt相关面试题
开发语言·qt
淼淼爱喝水41 分钟前
OpenEuler 系统下 Ansible 环境部署与连通性测试完整步骤
linux·开发语言·php·openeuler
古法安卓44 分钟前
Android-NTP时间同步机制
后端