22_Scala集合Seq

文章目录

  • 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.mzph.cn/news/832846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一致性评价政策加速行业仿制药洗牌,惯爱为代表的新锐品牌崭露头角

从印度神油到以形补形,男人的问题,从古至今一直困扰着很多人,大多人都羞于启齿。然而,沉默的背后,隐藏着令人震惊的数据:据统计显示,ED(勃起功能障碍)是男性生殖系统发病…

数据库基础教程第三版一嵌套查询

查找与“张小林”在同一个省市的其他客户情况。 select * from CustomerInfo where [所在省市] in ( SELECT [所在省市] from CustomerInfo where [客户姓名]张小林 ) 这样查询的结果记录有张小林,题目是其他客户情况。 可以使用子查询来判断不是一个人。 SELE…

抖音短视频矩阵系统技术源头/源代码开发部署/SaaS贴牌/源码api代开发

抖音短视频矩阵系统技术源头/源代码开发部署/SaaS贴牌/源码官方平台api授权代开发 一、短视频矩阵系统源码开发步骤 短视频矩阵系统的源头开发步骤通常包括以下几个关键阶段: 1.需求分析:明确系统的目标用户、功能需求、性能要求等。 2.系统设计&…

4.4网安学习第四阶段第四周回顾(个人学习记录使用)

本周重点 ①Linux系统提权 ②Linux权限维持 ③Windows 提权 ④Windows权限维持 ⑤SSRF利用 ⑥内网环境 ⑦内网扫描 ⑧漏洞利用 ⑨内网代理 ⑩获取主机控制权其他方案 ⑩①vuln靶场 ⑩②CS代理与ICMP隧道 本周主要内容 ①Linux系统提权 系统提权是成功入侵系统之…

C++常用库函数——strcmp、strchr

1、strcmp:比较两个字符串的值是否相等 例如 char a1[6] "AbDeG",*s1 a1;char a2[6] "AbdEg",* s2 a2;s1 2;s2 2;printf("%d \n", strcmp(s1, s2));return(0); s1指向a1,s2指向a2,strcmp表示比较s1和s…

中铁四局在线教育系统,在线教育AI新时代,成人学习新体验

在新技术再造传统教育的大背景下,尚德机构借助人工智能的新浪潮,用科技改造整个产业链以提升效率,随着大数据、云计算等互联网技术高速发展,中国成人教育线上化趋势越来越明显,市场份额越来越向头部企业集中。哪些企业…

搜维尔科技:这是我同事使用Faceware捕捉的第一个脸部画面

这是我同事使用Faceware(点击查看)捕捉的第一个脸部画面 搜维尔科技:这是我同事使用Faceware捕捉的第一个脸部画面

HW面试经验分享 | 某安全厂商护网二面

某厂商蓝队初级二面分享 所面试的公司:某安全厂商 薪资待遇:待定 所在城市:上海 面试职位:蓝队初级 面试过程:感觉良好,就是有个别的小问题,没有说好。 面试官的问题: 第1个问…

RFID射频识别中的高频HF

RFID,即 Radio Frequency Identification 射频识别技术,是一种非接触式的自动识别技术,通过无线射频方式进行非接触双向数据通信, 对电子标签或射频卡进行读写, 从而完成读写器与标签之间的数据通信, 实现识…

golang中的继承和组合的区别

go语言中的继承 指的是一个结构体中采用匿名的方式包含另外一个结构体 这个就叫做继承, 注意这里的匿名 组合 一个结构体用命名的方式包含另外一个结构体,这个就叫做组合 继承代码示例 type A struct {Name stringAge int}type B struct {Addr string…

5V升9V2A升压恒压WT3231

5V升9V2A升压恒压WT3231 WT3231,一款性能卓越的DC-DC转换器,采用了集成10A、26mΩ功率的MOSFET电源开关转换器。它能够输出高达12V的电压,稳定可靠。这款产品以固定的600KHz运行,因此可以使用小型的外部感应器和电容器&#xff0…

AWTK 集成 OGRE 3D 图形引擎

本项目演示了如何在 AWTK 中集成 OGRE3D。 0. 准备 先编译 AWTK, 并在 env.sh 中设置 awtk 的路径。需要安装 cmake 1. 生成资源 python scripts/update_res.py all2. 编译 设置环境变量 source env.sh source env_rt.sh编译 ogre 库 cd 3rd build_assimp.sh build_ogre.…

dockerk8s常用知识点

1、什么是docker 容器化和虚拟化对比 ▪开源的应用容器引擎,基于 Go 语言开发 ▪容器是完全使用沙箱机制,容器开销极低 ▪Docker就是容器化技术的代名词 ▪Docker也具备一定虚拟化职能 docker三大核心: Docker Engine: 提供了一个可以用来运行和管…

普源示波器测量相位差的原理和方法

普源示波器是一种常用的电子测试设备,它可以测量电路中的电压和电流波形。其中,测量相位差是示波器的一个重要功能,它可以用于分析信号的时间延迟、相位差、频率响应等信息。本文将介绍普源示波器测量相位差的原理和方法,并通过实…

rmallox勒索病毒肆虐,如何保护网络安全?

rmallox勒索病毒与网络安全的关系可以从以下几个方面来阐述: 一、rmallox勒索病毒的特性 rmallox勒索病毒是一种极具破坏性的计算机病毒,它具有多个显著特性,这些特性使得该病毒对网络安全构成了严重威胁。具体来说,rmallox病毒具…

域名不变根据系统判断手机和端脑h5pc自动转发不同请求

同一个域名,手机端和电脑端请求的页面不一样,但是域名要求不变,现在有两个前端代码,分别跑在两个docker里面,一个为app1另外一个是app2,暴露的端口分别是8080,8081,通过nginx将请求反代到两个do…

使用Three.js开发一个3D案例Demo

使用Three.js开发一个3D案例 最近在找工作,发现好多招聘要求都需要会Three.js,以前接触比较多的是2D开发,也就是平面开发,用到的做多的技术就是d3.js,现在3D开发已经成为了大势所趋,所以就学习下Three.js。…

typescript综合练习1(展开音乐播放列表)

Playlist Soundness What’s up, friend?! I’m so pumped you’re joining us. We’ve got a sick project we could totally use your help on! See, someone’s giving us amazing recommendations for songs to play. But they’re not just coming in as songs. Someti…

AtCoder Beginner Contest 336 D题 Pyramid

D题:Pyramid 标签:动态规划、前缀和题意:金字塔型序列: 1 、 2... k − 1 、 k 、 k − 1...2 、 1 1、2...k-1、k、k-1...2、1 1、2...k−1、k、k−1...2、1。给定一个长度为 n n n的序列 a i a_i ai​,可以进行重复…

MySQL入门学习-关系型数据库.数据库

MySQL是一种关系型数据库管理系统(RDBMS),也是一种开源数据库。关系型数据库是一种以表格形式存储数据的数据库,数据之间通过键值关联起来。 一、MySQL具有以下特点: 1. 可扩展性: MySQL可以在不同的操作…