继续学习了scala语言数据结构:
容器
列表LIst
不可变对象序列,一旦进行初始化,后不可以在被修改
进行初始化
在已有列表前端添加元素,通过::进行实现
需要注意的是。这不会进行修改操作,而是直接生成了另一个List
集合
不重复元素的集合,包括可变集合和不可变集合
若进行导包,导入mutable包,则生成可变集合,导入immutable包,则生成不可变集合,缺省下导入不可变集合,以下操作是初始化一个Set容器,并进行添加,添加后生成一个新的Set容器,又因为是val,所以改变mySet指向
可变的:指针指向内容没有发生变化,Set本身发生变化
import scala.collection.mutable.Set
映射Map
是一个键值对的集合,键唯一,值不一定唯一,同样可以有可变和不可变,规则和以上一样
进行获取:
循环遍历Map里面的元素
迭代器(Iterator)
提供一个访问集合的方法,有两个基本操作,next:返回下一个迭代器的元素,hasNext:用于检测是否有下一个元素
进行初始化
var iter = Iterator("Hadoop","Spark","Scala")
进行for循环遍历
for (elem <- iter) { println(elem) }
进行whlie遍历
while (iter.hasNext){ println(iter.next()) }
这段代码中,for循环和while循环都试图遍历迭代器iter并打印每个元素。然而,由于在for循环中已经遍历了所有元素,迭代器iter已经被耗尽,所以在while循环中无法再次访问到任何元素。这就是为什么只打印了一个结果的原因。
数组
可变,可索引,元素类型相同
进行定义
val intValuer = new Array[Int](3) intValuer(0) = 120 intValuer(1) = 121 intValuer(2) = 122 val myStrArr = new Array[String](3) myStrArr(0) = "BigData" myStrArr(1) = "Hadoop" myStrArr(2) = "Spark"
更多进行以下定义
val intvalueArr = Array(1,2,3)
定义多维数组
val myMatrix = Array.ofDim[Int](3,4)
进行定义可变长数组
val aMutableArr = ArrayBuffer(10,20,30) aMutableArr+=40 println(aMutableArr)
元组
不同类型值的集合
定义元组,访问元组
val tuple = ("BigData",2015,45.0) println(tuple._1) println(tuple._2)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!