继续学习了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)
标签:03,遍历,val,记录,假期,元素,iter,可变,集合 From: https://www.cnblogs.com/JIANGzihao0222/p/17975251