当前位置: 首页 > article >正文

Scala中的Array

(一)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())
      }
    }
}


http://www.kler.cn/a/397755.html

相关文章:

  • FFmpeg源码:avio_read_partial函数分析
  • 低代码平台:跨数据库处理的重要性与实现方式
  • ISP是什么?
  • 神经网络的正则化(一)
  • .Net Core根据文件名称自动注入服务
  • # ubuntu 安装的pycharm不能输入中文的解决方法
  • 基于树莓派的边缘端 AI 目标检测、目标跟踪、姿态估计 视频分析推理 加速方案:Hailo with ultralytics YOLOv8 YOLOv11
  • 鸿蒙生态的未来:共融与创新
  • HbuilderX 插件开发-模板创建
  • 将自定义函数添加到MATLAB搜索路径的方法
  • 【视觉SLAM】1-概述
  • java笔试练习题笔记(9)
  • GRE做题笔记(零散的个人经验)
  • 云渲染与云电脑,应用场景与技术特点全对比
  • 【RabbitMQ】10-抽取MQ工具
  • 高性能linux服务器运维实战 shell应用案例
  • C# yolo10使用onnx推理
  • SpringBoot整合Email 邮件发送详解
  • Java基础——多线程
  • SOP搭建:企业标准化操作程序构建与实施指南
  • 用com.github.shyiko.mysql.binlog 写一个监听mysql的binlog 的程序
  • 【代码随想录day32】【C++复健】509. 斐波那契数;70. 爬楼梯;746. 使用最小花费爬楼梯
  • Java-01 深入浅出 MyBatis - MyBatis 概念 ORM映射关系 常见ORM 详细发展历史
  • [刷题]入门1.矩阵转置
  • 单片机_day7_中断
  • 【Webpack实用指南】如何拆分CSS资源(2)