首页 > 其他分享 >假期学习记录03

假期学习记录03

时间:2024-01-19 17:59:31浏览次数:26  
标签:03 遍历 val 记录 假期 元素 iter 可变 集合

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

相关文章

  • /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found问题解决
    有一个go实现的项目代码最近有更新,自己在开发环境上手动构建并运行都没有问题(构建和运行时相同环境,肯定没有问题^_^)。后面通过jenkins构建镜像也没有问题,运行时却报错 之前的版本在jenkins上构建也是成功的,后沟通得知jenkins集群版本最近有更新 那么,大概知道原因了,由于jenk......
  • 003 Salesforceの基本的なキーワードを理解する
    0.はじめにこれから業務でSalesforceを使い始める人は事前に基本的なキーワードを確認することで運用開始に役立てていただければとおもいます。またすでにSalesforceを運用している人にとっても改めて見直すことにより利用の幅を広げていただけるかもしれません。1.主な製品S......
  • 【测试自动化覆盖率】记录统计自动化的工具testrail 如何实现自动统计覆盖率
        点击编辑来到这个页面 点击自己想要统计的testplan里面的用例选择selectcases   先选择右边的过滤所有Automated 为yes的tag,然后在底下点击确定 在左边呈现的就是出现的  取消不要的用例  ......
  • 2-STM32F103+EC800K(移远4G Cat1)远程升级篇(阿里云物联网平台)-STM32F103使用EC800K
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ZLIOTB/EC800K/aliyunota.html"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>  ......
  • DC-3靶机做题记录
    靶机下载地址:链接:https://pan.baidu.com/s/1-P5ezyt5hUbmmGMP4EI7kw?pwd=rt2c提取码:rt2c参考:http://t.csdnimg.cn/hhPi8https://www.vulnhub.com/entry/dc-32,312/官网http://t.csdnimg.cn/5mVZ7DC-3(1).pdfhttps://c3ting.com/archives/vulnhnbshua-ti---dc-3......
  • 详解Process object has no attribute '_popen'
    详解Processobjecthasnoattribute'_popen'最近在使用Python的multiprocessing模块进行多进程编程时,遇到了一个奇怪的错误:Processobjecthasnoattribute'_popen'。这个错误消息看起来很奇怪,让人摸不着头脑。错误背景在使用multiprocessing模块创建子进程时,通常会创建一个Pr......
  • P8034题解
    P8034[COCI2015-2016#7]Ozljeda题目传送门题解评橙差不多了。手玩一下样例,很容易发现\(x\)的循环节为\(K+1\),每一段分别为\(a_1,a_2,a_3,\dots,a_K,\bigoplus_{i=1}^Ka_i\)这几项,然后恰好循环节的异或值为\(0\),所以就可以直接维护前缀异或值,然后取模求答案。代码:#i......
  • 1-STM32F103+EC800K(移远4G Cat1)远程升级篇(阿里云物联网平台)-STM32F103使用EC800K
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ZLIOTB/EC800K/aliyunota.html"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>  ......
  • android开发编译出错:Unable to find method ''org.gradle.api.file.RegularFileProper
    Unabletofindmethod''org.gradle.api.file.RegularFilePropertyorg.gradle.api.file.ProjectLayout.fileProperty(org.gradle.api.provider.Provider)'''org.gradle.api.file.RegularFilePropertyorg.gradle.api.file.ProjectLayout.fileProp......
  • ICDM'23 BICE论文解读:基于双向LSTM和集成学习的模型框架
    本文分享自华为云社区《ICDM'23BICE论文解读》,作者:云数据库创新Lab。导读本文《EfficientCardinalityandCostEstimationwithBidirectionalCompressor-basedEnsembleLearning》是由华为云数据库创新Lab联合电子科技大学数据与智能实验室发表在顶会ICDM’23的长文。ICDM......