22_Scala集合Seq

文章目录

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::list3
    println(list3)    //List(1, 2, 3, 4)    不变集合不发生任何改变

    var list9 =  100::220::list3
    println(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)  //删除两个-999
    println(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.HashMapString,String起别名为JavaHashMap

起别名关键字type

2.Seq底层

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

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

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

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

例如:

复制代码
list :+ 10
10 +: list	
List(1, 1, 3, 4, 10)

4.空集合的表示

复制代码
List()
Nil
//二者等价
相关推荐
31535669131 小时前
Superpowers:GPT-5.6 时代下的流程毒瘤
前端·后端
wabs6661 小时前
关于单调栈【力扣739.每日温度的思考】
java·开发语言
AOwhisky1 小时前
Python 学习笔记(第三期)——流程控制核心知识点自测与详解
开发语言·笔记·python·学习·云原生·运维开发·流程控制
逆向编程2 小时前
Socket异常连接自动清理方案
开发语言
神奇小汤圆3 小时前
2026 Java岗面试题库(已收录GitHub),覆盖所有考点
后端
ArixBit3 小时前
用 Go 手撸 Agent 框架 #4:工具定义与契约——让 Agent 学会调用多工具
后端
枕星而眠3 小时前
【数据结构】红黑树入门指南
运维·数据结构·c++·后端
神奇小汤圆3 小时前
JDK 8 → 17 → 21 → 25:一次性讲清四代版本的关键跃迁
后端
要阿尔卑斯吗3 小时前
无限深度章节树如何一遍建成?路径编码+单调栈
后端
大东_tom3 小时前
Python 与 PyTorch 工程实践——从脚本到训练框架
后端