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)
}
}
相关推荐
脑袋大大的5 分钟前
判断当前是否为钉钉环境
开发语言·前端·javascript·钉钉·企业应用开发
毕设源码_钟学姐6 分钟前
计算机毕业设计springboot宿舍管理信息系统 基于Spring Boot的高校宿舍管理平台设计与实现 Spring Boot框架下的宿舍管理系统开发
spring boot·后端·课程设计
Wy. Lsy32 分钟前
Kotlin基础学习记录
开发语言·学习·kotlin
方圆想当图灵1 小时前
ScheduledFutureTask 踩坑实录
后端
全栈凯哥1 小时前
16.Spring Boot 国际化完全指南
java·spring boot·后端
M1A11 小时前
Java集合框架深度解析:LinkedList vs ArrayList 的对决
java·后端
Tanecious.1 小时前
C++--红黑树
开发语言·c++
Top`1 小时前
Java 泛型 (Generics)
java·开发语言·windows
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ2 小时前
如何使用Java WebSocket API实现客户端和服务器端的通信?
java·开发语言·websocket
Shartin2 小时前
Can201-Introduction to Networking: Application Layer应用层
服务器·开发语言·php