scala数据结构与可变不可变

数组:
可变与不可变
不可变数组是指数组的长度是不可变的,但是数组对应的元素是可变的
可变数组的长度和元素都可以改变

不可变数组
val arr=Array(1,2) 完成初始化,且限定长度为2
val arr=ArrayInt 长度为5的Int类型数组
val arr=arr ++ arr1 只是通过显示申明过类型的数组才可以进行该操作,不然报类型不匹配错误

可变数组
val c = scala.collection.mutable.ArrayBufferInt
c可以任意的插值和更新值

List:
List是不可变的。长度无法再改变,但是对象可变。
val oneTwoThreeFour = oneTwo ::: threeFour list合并,与java.lang.String一样,返回的是一个新对象
1 :: twoThree 可以添加值,但只能向前添加

Tuple:
不可变多值对象,其特点是可以放入任意类型的数据
val pair = (99, "Luftballons") 内部生成一个Tuple2对象
println(pair._1) 访问是通过_N访问,N从1开始
println(pair._2)

Set:
对可变set和不可变set的分析
对于可变set和不可变set都可以通过 set+="str" 来添加一个元素,但是机制不同
对于不可变set来说,想添加元素变量必须是var修饰,因为不可变set的机制和List相同
返回的是一个新的Set,如果元素是val不可变,就不能接受新的Set。相反,如果是一个
可变集合,即使变量是val修饰的,还是可以添加元素,因为集合本身没有改变

Map:
对象映射关系集合,也分可变不可变,但是原理一样
var myMap=Map(1->"s",2->2) 可以初始化,也可以不
myMap+=(3->"q") 添加或者修改元素

对于所有集合,在初始化时进行赋值操作,编译器会识别并给这个集合表明类型,如果全部是Int
那么这个集合就是Int类型,不可更改。如果插入时又有Int又有String,那么类型是any,可以
对任意类型操作。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Scala与Java的关系 Scala与Java的关系是非常紧密的!! 因为Scala是基于Java虚拟机,也就是...
    灯火gg阅读 3,609评论 1 24
  • 1.1. 什么是Scala Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特...
    文子轩阅读 1,584评论 1 3
  • 站台上等地铁,对着封闭门上照出来的影像,忽然看愣了,那是我吗?有些憔悴、疲惫、没有精神,看上去年龄有些大了的姑娘是...
    Erin棋落阅读 1,598评论 0 1
  • 不知这是第几个晚上了,我真的觉得自己要疯了,脑子里都是她的怒吼声,面对生活的不如意,她愤怒地拍打着铁栏杆,似乎时刻...
    临立夏阅读 312评论 0 1
  • 凡事都有定期,天下万务都有定时 生有时,死有时 栽种有时,拔出所栽种的,也有时 杀戮有时,医治有时 拆毁有时,建造...
    楠宝_2018阅读 188评论 0 1

友情链接更多精彩内容