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)
}
}
相关推荐
程序员爱钓鱼25 分钟前
Go语言实战案例-简易计算器(加减乘除)
后端
学不会就看30 分钟前
Django--01基本请求与响应流程
后端·python·django
AI+程序员在路上33 分钟前
Qt6中模态与非模态对话框区别
开发语言·c++·qt
nbsaas-boot5 小时前
Java 正则表达式白皮书:语法详解、工程实践与常用表达式库
开发语言·python·mysql
chao_7895 小时前
二分查找篇——搜索旋转排序数组【LeetCode】两次二分查找
开发语言·数据结构·python·算法·leetcode
Nejosi_念旧6 小时前
解读 Go 中的 constraints包
后端·golang·go
风无雨6 小时前
GO 启动 简单服务
开发语言·后端·golang
小明的小名叫小明6 小时前
Go从入门到精通(19)-协程(goroutine)与通道(channel)
后端·golang
斯普信专业组6 小时前
Go语言包管理完全指南:从基础到最佳实践
开发语言·后端·golang
我是苏苏8 小时前
C#基础:Winform桌面开发中窗体之间的数据传递
开发语言·c#