1 scala集合-数组
1 定长数组
定长数组,是指数组长度不可变。定义定长数组的方法有如下两种:
- 方法1:
var/val variable_name = new Array[元素类型](数组长度) // 通过制定长度定义
例如,定义一个长度为20的Int 类型数组。
scala> val a = new Array[Int](20)
val a: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
- 方法2:
val/var variable_name = Array(ele1, ele2, ele3, ...) // 使用元素直接定义
例如,定义一个数组元素为 1、2、3 的数组。
scala> val a = Array(1,2,3)
val a: Array[Int] = Array(1, 2, 3)
2 变长数组
变长数组的元素个数是可以增减的,我们可以添加、删除、修改元素。我们可以使用类 scala.collection.mutable.ArrayBuffer。
定义空变长数组的语法为:
val/var variable_name = ArrayBuffer[元素类型]()
例如,定义一个变长数组,初始元素为 1、2、3
scala> import scala.collection.mutable.ArrayBufferscala> val a = ArrayBuffer(1,2,3)
val a: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)
2.1 添加元素到变长数组
使用操作符 += 添加元素到变长数组,例如,向变长数组 a 中添加元素 4
scala> import scala.collection.mutable.ArrayBufferscala> val a = ArrayBuffer(1,2,3)
val a: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)scala> a+=4
val res0: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4)
2.2 添加数组到变长数组
使用操作符 ++= 可以添加一个数组到定长数组。
scala> import scala.collection.mutable.ArrayBufferscala> val a = ArrayBuffer(1,2,3,4)
val a: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4)scala> a ++= Array(5,6)
val res1: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4, 5, 6)
2.3 删除元素
使用操作符 -= 可以删除变长数组的一个元素。
scala> import scala.collection.mutable.ArrayBufferscala> val a = ArrayBuffer(1,2,3,4,5,6)
val a: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4, 5, 6)scala> a -= 4
val res2: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 5, 6)
3 遍历数组
与 Java 一样,在 Scala 中,可以通过索引或 for 表达式遍历数组。
3.1 for 直接遍历
scala> val a = Array(1,2,3)
val a: Array[Int] = Array(1, 2, 3)scala> for(i <- a) println(i)
1
2
3
3.2 通过索引遍历
scala> val a = Array(1,2,3)
val a: Array[Int] = Array(1, 2, 3)
scala> for(idx <- 0 until a.length) println(a(idx))
1
2
3
相关文章:
1 scala集合-数组
1 定长数组 定长数组,是指数组长度不可变。定义定长数组的方法有如下两种: 方法1: var/val variable_name new Array[元素类型](数组长度) // 通过制定长度定义例如,定义一个长度为20的Int 类型数组。 scala> val a new …...
双场板功率GaN HEMT电容模型以精确模拟开关行为
标题:Capacitance Modeling in Dual Field-Plate Power GaN HEMT for Accurate Switching Behavior(TED.16年) 摘要 本文提出了一种基于表面电位的紧凑模型,用于模拟具有栅极和源极场板(FP)结构的AlGaN/G…...
OpenCV Mat实例详解 四
OpenCV Mat实例详解三中详细介绍来了OpenCV Mat类的公有静态成员函数,下面介绍OpenCV Mat类的其他常用成员函数。 OpenCV Mat类常用成员函数 Mat & adjustROI (int dtop, int dbottom, int dleft, int dright); dtop ROI 上边界移动值,如…...
Fluke ADPT 连接器新增对福禄克万用 Fluke 106 的支持
所需设备: 1、Fluke ADPT连接器; 2、Fluke 106; Fluke 106 拆机图: 显示界面如下图: 并且可以将波形导出到EXCEL: 福禄克万用表需要自己动手改造!!!...
算法-3-基本的数据结构
单双链表 1.单链表双链表如何反转 import java.util.ArrayList; import java.util.List;public class Code01_ReverseList {public static class Node {public int value;public Node next;public Node(int data) {value data;}}public static class DoubleNode {public int…...
探秘Java反射:灵活编程的利器
前言 大家好,我是chowley,不知道大家在学习Java的过程中有没有听过反射的概念,今天我来总结一下我心中的Java反射。 在Java编程中,反射是一种强大的工具,它允许程序在运行时检查和操作类、方法、属性等,而…...
记录 | ubuntu pyqt5 pycharm配置
Ubuntu16.04pycharmpyqt5安装与配置_ubuntu pycharm pyqt5-CSDN博客pycharm激活码 6ZUMD7WWWU-eyJsaWNlbnNlSWQiOiI2WlVNRDdXV1dVIiwibGljZW5zZWVOYW1lIjoiSmV0cyBHcm91cCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN…...
ESP32学习(1)——环境搭建
使用的ESP32板子如下图所示 它可以用Arduino 软件,基于C语言开发。但是,在这里,我是用Thonny软件,基于micro_python对其进行开发。 1.安装Thonny Thonny的软件安装包,可以去它官网上下载。Thonny, Python IDE for begi…...
Attention Is All Your Need论文笔记
论文解决了什么问题? 提出了一个新的简单网络架构——transformer,仅仅是基于注意力机制,完全免去递推和卷积,使得神经网络训练地速度极大地提高。 We propose a new simple network architecture, the Transformer, based sole…...
vue-进阶语法(四)
目录 v-model原理 v-model应用于组件 sync修饰符 ref 和 $refs(重点) $nextTick v-model原理 原理:v-model本质上是一个语法糖。例如应用在输入框上,就是 value属性 和 input事件 的合写。 作用:提供数据的双向…...
CGAL::2D Arrangements-7
7 几何Traits 几何Traits封装了几何实体的定义以及处理这些几何实体的几何predicates和构造的实现,供Arrangement_on_surface_2类模板和其他周边模块使用。应用于Arrangement的各种算法所确定的最小要求被组织在精细几何特征概念的层次中。每个概念列出的需求只包括…...
linux系统下vscode portable版本的rust环境搭建004:rust
目的:希望在获得一个新的系统之后,以最简便快速的方式搭配一个rust的编程环境命令在线安装只执行这句就行了 :curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh,因为是要portable安装所以按照以下的方式执行。 下载…...
从汇编角度解释线程间互斥-mutex互斥锁与lock_guard的使用
多线程并发的竞态问题 我们创建三个线程同时进行购票,代码如下 #include<iostream> #include<thread> #include<list> using namespace std; //总票数 int ticketCount100; //售票线程 void sellTicket(int idx) {while(ticketCount>0){cou…...
高程 | 多态性(c++)
文章目录 📚多态📚运算符重载🐇定义🐇规则🐇友元运算符重载函数🐇成员运算符重载函数 📚虚函数📚纯虚函数和抽象类 📚多态 多态:同样的消息被不同类型的对象…...
LV.23 D2 开发环境搭建及平台介绍 学习笔记
一、Keil MDK-ARM简介及安装 Keil MDK,也称MDK-ARM,Realview MDK (Microcontroller Development Kit)等。目前Keil MDK 由三家国内代理商提供技术支持和相关服务。 MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备…...
[uniapp生命周期]详细讲解uniapp中那些属于vue生命周期,那些属于uniapp独有的生命周期,以及这中间的区别 相关的内容和api 代码注释
目录 1. Vue.js生命周期函数2.Vue生命周期函数代码beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestroydestroyed$nextTick$forceUpdate$destroy 3. UniApp独有的生命周期函数onLaunchonShowonHideonError 4.总结 在UniApp中,除了Vue.js的生命周…...
【动态规划】【记忆化搜索】【状态压缩】1681. 最小不兼容性
作者推荐 【数位dp】【动态规划】【状态压缩】【推荐】1012. 至少有 1 位重复的数字 本文涉及知识点 动态规划汇总 状态压缩 记忆化搜索 1681. 最小不兼容性 给你一个整数数组 nums 和一个整数 k 。你需要将这个数组划分到 k 个相同大小的子集中,使得同一…...
JVM-类加载器 双亲委派机制
申明:文章内容是本人学习极客时间课程所写,文字和图片基本来源于课程资料,在某些地方会插入一点自己的理解,未用于商业用途,侵删。 什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写&a…...
vue axios 请求后端无法传参问题
vue请求后端无法传参问题 问题描述处理过程总结 问题描述 在学习vue时,使用axios调用后端,发现无法把参数正确传到后端,现象如下: 使用vue发起请求,浏览器上已经有传参,但是后端没接收到对应的用户名密码&…...
打印最小公倍数
打印最小公倍数 题目描述: 输入2个整数m和n,计算m和n的最小公倍数,并打印出结果 测试1: 输入:18 24 输出:72 测试2: 输入:18 6 输出:18解法思路: 最小公倍数是指两个…...
电脑自动干活不是梦|OpenClaw小龙虾本地AI智能体Windows部署详细步骤
核心亮点:零代码门槛|全程可视化|无需手动配环境|内置所有依赖|28 万 Tokens 额度 下载地址:OpenClaw Windows 一键部署包 v2.7.5 文章标签:#OpenClaw #小龙虾 AI #本地 AI 智能体 #Windows 一键…...
IDEA项目乱码终结指南:从UTF-8全局设置到.properties文件特殊处理
IDEA项目乱码终结指南:从UTF-8全局设置到.properties文件特殊处理 在Java开发中,编码问题就像一颗定时炸弹,随时可能在最意想不到的时刻引爆。特别是当项目涉及多语言支持、团队协作或接手遗留代码时,乱码问题往往成为开发者挥之不…...
NotebookLM文献管理到底靠不靠谱?——基于372篇实证论文的引用准确率压力测试报告
更多请点击: https://intelliparadigm.com 第一章:NotebookLM文献管理到底靠不靠谱?——基于372篇实证论文的引用准确率压力测试报告 为验证Google NotebookLM在学术场景下的引用可靠性,我们对372篇跨学科实证论文(含…...
Linux内核模块管理:lsmod命令详解与实战应用
1. 项目概述:从“黑盒”到“白盒”,lsmod是你的系统模块探照灯如果你在Linux世界里待过一阵子,尤其是折腾过驱动、内核或者排查过一些稀奇古怪的系统问题,那你大概率听说过或者用过lsmod这个命令。乍一看,它的名字平平…...
终极指南:如何用Snipe-IT免费开源系统解决企业IT资产追踪难题
终极指南:如何用Snipe-IT免费开源系统解决企业IT资产追踪难题 【免费下载链接】snipe-it A free open source IT asset/license management system 项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-it 想象一下,你的公司有500台笔记本电…...
一颗“语音前端 DSP”到底能解决多少现实问题?
在做音频产品开发这些年里,我接触过不少“语音处理模组”。但很多产品都有一个共同问题: 参数看起来很漂亮,真正落地时却很难调。尤其是下面这些场景:麦克风和喇叭距离太近,疯狂啸叫回音消除效果差,一开大音…...
MOOTDX:Python通达信数据接口的完整指南
MOOTDX:Python通达信数据接口的完整指南 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx MOOTDX是一个专为量化投资和股票数据分析设计的Python通达信数据接口封装库,它提供…...
别再折腾双系统了!Win11/Win10下用WSL2搞定PyTorch+CUDA环境(附YOLOv5实战)
在Windows上打造高效深度学习环境:WSL2PyTorchCUDA全攻略 对于许多刚接触深度学习的开发者来说,环境配置往往是最令人头疼的第一步。传统做法要么是在Windows和Linux双系统间来回切换,要么忍受虚拟机性能低下的问题。而现在,WSL2&…...
zen-rails-security-checklist测试策略:安全测试用例与自动化扫描
zen-rails-security-checklist测试策略:安全测试用例与自动化扫描 【免费下载链接】zen-rails-security-checklist Checklist of security precautions for Ruby on Rails applications. 项目地址: https://gitcode.com/gh_mirrors/ze/zen-rails-security-checkli…...
用C++和Eigen库手把手实现UR3机械臂逆解(附完整代码与避坑指南)
从理论到实践:基于Eigen库的UR3机械臂逆运动学完整实现指南 在工业自动化和机器人研究领域,六轴协作机械臂因其灵活性和广泛的应用场景而备受关注。UR3作为Universal Robots旗下的紧凑型协作机械臂,凭借其轻量化设计和用户友好特性࿰…...
