22_Scala集合Seq

news/2024/5/20 8:41:49

文章目录

  • Seq序列
  • 1.构建集合
  • 2.List集合元素拼接&&集合拼接
  • 3.可变Seq&&List
    • 3.1 ListBuffer创建
    • 3.2 增删改查
    • 3.3 相互转化
  • Appendix
    • 1.Scala起别名
    • 2.Seq底层
    • 3.关于运算符操作+: :+
    • 4.空集合的表示

在这里插入图片描述

Seq序列

–Seq表示有序数据可重复的集合

1.构建集合

//    1.构建Seq
val seq = Seq(1, 2, 3, 4)
val list = List(1, 1, 3, 4)
println(seq) //List(1, 2, 3, 4)
println(list) //List(1, 1, 3, 4)list :+ 10 //不可变集合,加了没用
println(list :+ 10) //List(1, 1, 3, 4, 10)//    --增量式创建List
val list2 = 1 :: 2 :: 3 :: 4 :: List()
println(list2) //List(1, 2, 3, 4)//    简化
val list3 = 1 :: 2 :: 3 :: 4 :: Nil

2.List集合元素拼接&&集合拼接

//    2.List集合添加数据 :: 和 :::100::220::list3println(list3)    //List(1, 2, 3, 4)    不变集合不发生任何改变var list9 =  100::220::list3println(list9)    //List(100, 220, 1, 2, 3, 4)var list10 = list9:: list     //::表示将冒号的左边当作一个元素添加到右边的集合println(list10)   //List(List(100, 220, 1, 2, 3, 4), 1, 1, 3, 4)var list10_ = list9::: list   //:::表示将集合左边的数据倒入集合右边(头插)println(list10_)    //List(100, 220, 1, 2, 3, 4, 1, 1, 3, 4)

3.可变Seq&&List

集合创建,使用apply方法,且请注意使用的是ListBuffer增删改差相互转化
toBuffer,toList

3.1 ListBuffer创建

注意:没有SeqBuffer

//1.集合创建,使用apply方法
val value = ListBuffer(1, 2, 3, 4)

3.2 增删改查

//    2.增删改差value.append(999)value.insert(0,-999)value.update(1,-999)value.appendAll(ListBuffer(8,7,6))println(value)    //ListBuffer(-999, -999, 2, 3, 4, 999, 8, 7, 6)value.remove(0,2)  //删除两个-999println(value)    //ListBuffer(2, 3, 4, 999, 8, 7, 6)

3.3 相互转化

toList()
toBuffer()

Appendix

1.Scala起别名

type JavaHsahMap = java.util.HashMap[String,String]

也就是将java.util.HashMap[String,String]起别名为JavaHashMap

起别名关键字type

2.Seq底层

scala中Seq是一个特质trait,无法直接构建对象,所以底层采用的是List集合

在这里插入图片描述

在这里插入图片描述

由于底层关系,上述两种写法都可以

3.关于运算符操作+: :+

此类运算符都是表示集合从:端进行+操作

例如:

list :+ 10
10 +: list	
List(1, 1, 3, 4, 10)

4.空集合的表示

List()
Nil
//二者等价

http://www.mrgr.cn/p/55437072

相关文章

ReactFlow的ReactFlow实例事件传参undefined处理状态切换

1.问题 ReactFlow的ReactFlow实例有些事件我们在不同的状态下并不需要,而且有时候传参会出现其它渲染效果,比如只读状态下我们不想要拖拉拽onEdgesChange连线重连或删除的功能。 2.思路 事件名称类型默认值onEdgesChange(changes: EdgeChange[]) >…

Java面试重点之反射机制

一、 反射是什么? 允许程序在运行时查询和操作对象的类型信息。通过反射,程序能够在运行时获取对象的类定义信息,如类的名称、方法、字段、注解等,并且可以动态地调用对象的方法或访问其字段,而无需在编译时具体知道对…

【SQL每日一练】统计复旦用户8月练题情况

文章目录 题目一、分析二、题解1.使用case...when..then2.使用if 题目 现在运营想要了解复旦大学的每个用户在8月份练习的总题目数和回答正确的题目数情况,请取出相应明细数据,对于在8月份没有练习过的用户,答题数结果返回0. 示例代码&am…

Java17 --- SpringCloud之Gateway

目录 一、Gateway网关创建 1.1、创建微服务子工程9527及配置和依赖 1.1.1、pom依赖 1.1.2、yml配置 1.1.3、主启动类并测试入驻consul 二、实现路由映射 2.1、服务8001新增测试代码 2.2、修改9527服务yml配置文件 2.3、远程调用接口加gateway 2.3.1、新增80服务测…

企业车辆管理系统参考论文(论文 + 源码)

【免费】关于企业车辆管理系统.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89282550 企业车辆管理系统 摘 要 随着经济的日益增长,车辆作为最重要的交通工具,在企事业单位中得以普及,单位的车辆数目已经远远不止简单的几辆,与此同时就产生了车辆资源的合理…

JavaScript异步编程——05-回调函数

我们在前面的文章《JavaScript 基础:异步编程/单线程和异步》中讲过,Javascript 是⼀⻔单线程语⾔。早期我们解决异步场景时,⼤部分情况都是通过回调函数来进⾏。 (如果你还不了解单线程和异步的概念,可以先去回顾上一…

OpenVX技术图例(二)

OpenVX技术图例(二) 参考文献链接 https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/tiovx/docs/user_guide/index.html人工智能芯片与自动驾驶

贪吃蛇小游戏(c语言)

1.效果展示 屏幕录制 2024-04-28 205129 2.基本功能 • 贪吃蛇地图绘制 • 蛇吃食物的功能 (上、下、左、右方键控制蛇的动作) • 蛇撞墙死亡 • 蛇撞自身死亡 • 计算得分 • 蛇身加速、减速 • 暂停游戏 3.技术要点 C语言函数、枚举、结构…

(7)ram ip使用

一、ram相关介绍 本实验使用一个控制模块对ram ip进行控制(本质上是三个计数器) 二、ip使用 在界面中选择IP catalog,搜索block,选择底下这个,双击即可生成ram的ip下面进行一些ram资源的配置 配置好后点击ok,生成ip,可以在这里看到已经生成好了: 这里点开这个.veo文件,…

深入了解 NumPy:深度学习中的数学运算利器

文章目录 1. 导入NumPy2. 创建NumPy数组3. 数组的算术运算4. N维数组4.1 创建和操作多维数组4.2 高维数组 5. NumPy的广播功能5.1 基本广播示例5.2 更复杂的广播示例 6. 访问数组元素6.1 基于索引的访问6.2 遍历数组6.3 基于条件的访问6.4 高级索引6.5 性能考虑 在深度学习和数…

Crowd counting 系列NO.2—MCNN

声明:博客是用latex写的,所以直接用图片来展示吧,效果是一样的。下载资源网上都很容易搜到,如需下载资源,请留言。

韩顺平0基础学Java——第5天

p72——p86 今天同学跟我说别学java,真的吗?唉,先把这视频干完吧。 逻辑运算符练习 x6,y6 x6,y5 x11,y6 x11,y5 z48 错了&a…

超级大转盘!(html+less+js)(结尾附代码)

超级大转盘!(结尾附代码) 网上看到有人用转盘抽奖,怀疑是不是有问题,为什么每次都中不了,能不能整个转盘自己想中啥中啥,查阅了网上写得好的文章,果然实现了只中谢谢参与&#xff0…

《21天学通C++》(第十二章)运算符类型与运算符重载

1.为什么要重载运算符&#xff1f; 通过重载运算符&#xff0c;可以将复杂的操作封装成简单的运算符形式&#xff0c;简化代码&#xff0c;提高可读性下面举一个简单的例子 计算两个点的坐标之和。 1.不重载运算符 #include <iostream> using namespace std; class P…

低功耗数字IC后端设计实现典型案例| UPF Flow如何避免工具乱用Always On Buffer?

下图所示为咱们社区低功耗四核A7 Top Hierarchical Flow后端训练营中的一个案例&#xff0c;设计中存在若干个Power Domain&#xff0c;其中Power Domain2(简称PD2)为default Top Domain&#xff0c;Power Domain1&#xff08;简称PD1&#xff09;为一个需要power off的domain&…

STM32单片机实战开发笔记-I2C通讯总线【wulianjishu666】

嵌入式单片机开发实战例程合集&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/11av8rV45dtHO0EHf8e_Q0Q?pwd28ab 提取码&#xff1a;28ab I2C模块测试 功能描述 I2C总线接口连接微控制器和串行I2C总线。它提供多主机功能&#xff0c;控制所有I2C总线特定的时序&am…

云HIS源码,基于云计算的医院临床信息系统(有应用案列)

云HIS全套商业源码&#xff0c;基于云计算的医院临床信息系统 提供预约挂号、门急诊收费、门诊医生站、护士工作站、药房药库管理、电子病历、住院医生站、住院护士工作站、住院登记结算、出院管理、病案管理、医药价格管理、财务管理、统计查询、会员管理等业务及管理功能。 …

【Android】Room数据库的简单使用方法

Room数据库的使用方法 目录 1、添加Room数据库的依赖2、Entity——定义实体类 2.1 定义主键——PrimaryKey2.2 字段注解——ColumnInfo 3、Dao——定义数据访问对象4、Database——数据库 4.1 通过回调观察数据库是否创建成功 5、使用时注意点6、编写异步 DAO 查询 6.1 写异步…

python作业五

题目&#xff1a;注册登录 制作一个注册登录模块 注册&#xff1a;将用户填入的账户和密码保存到一个文件(users.bin) 登陆&#xff1a;将用户填入账户密码和users.bin中保存的账户密码进行比对,如果账户和密码完全相同 那 么登录成功&#xff0c;否则登录失败…

Linux基础之git与调试工具gdb

目录 一、git的简单介绍和使用方法 1.1 git的介绍 1.2 git的使用方法 1.2.1 三板斧之git add 1.2.2 三板斧之git commit 1.2.3 三板斧之git push 二、gdb的介绍和一些基本使用方法 2.1 背景介绍 2.2 基本的使用方法 一、git的简单介绍和使用方法 1.1 git的介绍 Git是一…