JIANGzihao0222

导航

 

继续学习了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 2024-01-19 17:44  实名吓我一跳  阅读(15)  评论(0)    收藏  举报