JIANGzihao0222

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

继续学习了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)

 

posted on   实名吓我一跳  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
 
点击右上角即可分享
微信分享提示