20_Scala集合_不可变数组Array

ops/2024/10/10 23:21:00/

文章目录

  • Array
  • 1.创建不可变数组Array
    • 1.1直接new
    • 1.2apply方法
  • 2.Array改查
  • 3.mkString()
  • 4.不可变数组Array遍历
    • for循环遍历
    • foreach遍历
    • foreach匿名写法
  • Appendix

Array

–Array不可变数组,增删数据不会使源数组发生变化,而是会产生新数据

scala中数组表示使用arr(3) ; [ ]表示泛型

1.创建不可变数组Array

1.1直接new

//    1.创建数组
val arr = new Array[String](3) //长度是3
println(arr) //scala中的Array 就是java中的 String[] arr    反编译等价;

1.2apply方法

使用apply内置方法直接赋值

//    --创建方式且同时赋值操作;
val arr1: Array[Int] = Array.apply(1, 2, 3, 4)//    --scala的apply方法编译器自动识别 -- 可省,数据类型填值类型可以推断,可省
val arr2 = Array(3,2,1)

2.Array改查

不可变数组Array,没有增删,所有的增删操作使用修改 替代

//    2.增删改查    此处Array没有添加和删除的能力;只能修改数据平替增删
arr(0) = "zhangsan"
arr(1) = "lisi" //修改操作,非赋值;
arr(2) = "wangwu"println(arr(2)) //wangwuprintln(arr.mkString) //zhangsanlisiwangwu
println(arr.mkString(" ")) //zhangsan lisi wangwu
println(arr.mkString(",")) //zhangsan,lisi,wangwu

3.mkString()

mkString 方法,将数组数据生成字符串
println(arr.mkString) //zhangsanlisiwangwu
println(arr.mkString(" ")) //zhangsan lisi wangwu
println(arr.mkString(",")) //zhangsan,lisi,wangwu

在这里插入图片描述

4.不可变数组Array遍历

循环遍历{循环遍历for(elem <- arr){}循环forEach遍历--实质是面向对象的方法实现循环遍历foreach遍历匿名写法--注意函数作为对象进行调用的时候,函数名不重要,函数参数重要;}

for循环遍历

for (elem <- arr) {println(elem)
}

foreach遍历

//   循环forEach遍历
//    首先定义一个 遍历逻辑
def foreachFun(str: String): Unit = {println("***********" + str)}arr.foreach(foreachFun) //forEach需要传入参数,参数类型是String => Unit
/*
***********zhangsan
***********lisi
***********wangwu*/

foreach匿名写法

arr.foreach((str: String) => {println("匿名遍历" + str)}
)//    简化
arr.foreach(str => println("匿名遍历" + str)
)
arr.foreach(println(_))
arr.foreach(println)

Appendix

–Array是不可变数组 ,因此添加数据或删除数据不会改变源数组,而是会产生新数组; //了解即可

arr1.+:(1000)
for (elem <- arr1) {println(elem)
}
/*** 1* 2* 3* 4      没有1000*/

http://www.ppmy.cn/ops/39151.html

相关文章

2024 年最新使用 ntwork 框架搭建企业微信机器人详细教程

NTWORK 概述 基于 PC 企业微信的 api 接口&#xff0c;支持收发文本、群、名片、图片、文件、视频、链接卡片等。 下载安装 ntwork pip install ntwork国内源安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ntwork企业微信版本下载 官方下载&#xff1a;h…

JCR一区 | Matlab实现1D-2D-GASF-CNN-GRU-MATT的多通道输入数据分类预测

JCR一区 | Matlab实现1D-2D-GASF-CNN-GRU-MATT的多通道输入数据分类预测 目录 JCR一区 | Matlab实现1D-2D-GASF-CNN-GRU-MATT的多通道输入数据分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 基本介绍 Matlab实现1D-2D-GASF-CNN-GRU-MATT的多通道输入数据分类预…

c++ 线程实验

在C中&#xff0c;你可以使用C11或更高版本的线程库来创建和管理线程。以下是一个简单的C线程实验示例&#xff0c;该示例展示了如何创建和启动一个线程&#xff0c;以及如何在主线程和子线程中执行不同的任务。 #include <iostream> #include <thread> #include …

hyper-v启动centos7虚拟机不能联网

虚拟网卡要和之前虚拟机里面设置的GATEWAY一致。 安装CentOS遇到Error setting up base repository换url 或者换镜像包iso(这个有用&#xff09; 没掌握摸Yu的精髓 好累啊

Python写了for i in range(10)却只打印一遍?

题目&#xff1a;定义一个两个参数的重复打印函数&#xff0c;第一个参数指定要打印的字符串&#xff0c;第二个参数指定要重复打印的次数&#xff0c;在主程序中调用该函数&#xff0c;打印10遍你的学号姓名。 为什么调用函数后结果只打印了一遍? 看了题目感觉就很诡异&#…

您的文件和驱动器上的“密码保护”有多安全?

某些行业&#xff08;例如医疗保健、法律和公司&#xff09;的人们在通过电子邮件发送文件时通常依赖密码保护&#xff0c;认为它可以提供足够的安全性来防止窥探。然而&#xff0c;对 PDF 或 Excel 文件进行简单的密码保护并不像看起来那样万无一失。 使用密码保护文件而不加…

Git详解之五:分布式Git

为了便于项目中的所有开发者分享代码&#xff0c;我们准备好了一台服务器存放远程 Git 仓库。经过前面几章的学习&#xff0c;我们已经学会了一些基本的本地工作流程中所需用到的命令。接下来&#xff0c;我们要学习下如何利用 Git 来组织和完成分布式工作流程。 特别是&#…

FreeRTOS标准库例程代码

1.设备STM32F103C8T6 2.工程模板 单片机: 部分单片机的程序例程 - Gitee.comhttps://gitee.com/lovefoolnotme/singlechip/tree/master/STM32_FREERTOS/1.%E5%B7%A5%E7%A8%8B%E6%A8%A1%E6%9D%BF 3.代码 1-FreeRTOS移植模板 #include "system.h" #include "…