scala入门 (三)初识scala集合

前言

上一章对scala对象进行了一个初步的了解,这一章将对scala集合进行一个入门,同样这一章将会把没一个知识点和python做对比,所以这一系列文章更适合的是学习scala的python程序员。

定长数组
新建数组方式一
val array1 = new Array[String](5)
新建数组方式二
 val array2 = Array("one","two","three")
数组的赋值和取值

这点和python 类似,只不过python用的中括号,这个用的小括号。

在这里插入图片描述
同样如果取索引为3的值,因为这个索引没有值。scala会抛出数组下标越界的异常。

数据的简单操作

数组长度

val a = Array(1,2,3,4,5,6)
a.length

数组求和 sum
在这里插入图片描述
数组取最大最小值 min,max
在这里插入图片描述
数组转字符串 mkString 类似于 python的join方法
在这里插入图片描述

变长数组(可变数组)
新建可变数组的方式
val a = scala.collection.mutable.ArrayBuffer[Int]()
新增数据

在这里插入图片描述
新增数据整体来说,比较简洁优雅

删除数据

在这里插入图片描述
删除函数用的是remove方法
可以remove(0) 删除索引为0的数据
可以remove(4,1) 从索引为4的元素开始(包含)删除一个数据,那就是索引4数据本身。如果是remove(4,2) 则是删除原索引为4和为5的元素。

同样可以指定从数组头部删除数据或者尾部删除数据 trimEnd(头部删),trimStart(尾部删)

转换为定长数组
a.toArray
数组转置在这里插入图片描述
定长列表(list)
新建一个列表

和python 类似没有太多复杂的定义

val l = List(1,2,3,4,5)
列表的头部跟尾部

在这里插入图片描述
头部是列表的第一个值,如果列表里的值是数字,那么head就是Int类型。
tail尾部则是除了第一个值外其他的值的list集合。

因为有这种特殊的操作所以列表可以采用另一种新建的方式
在这里插入图片描述
两个冒号之前的是列表的头,后面的则是列表的尾部
我们来试一下更自由一些的操作
在这里插入图片描述
这个Nil是scala 提供的空列表,并且这个列表是不可变的就是作为空来使用的
在这里插入图片描述

变长列表(list)
变长列表的新建

val l2 = scala.collection.mutable.ListBufferInt

列表元素的增加还删除

在这里插入图片描述
和数组的操作类似,有趣的是列表支持 -= 操作,就是减去列表中的指定值。这里面减去的并不是索引,而是具体的值。并且如果将要减去的值并不在列表中,也不会报错。这点还是比较友好的。

变长列表的转换

转换为定长列表

l2.toList

在这里插入图片描述

转换为定长数组

l2.toArray

在这里插入图片描述

Set

和python的集合类似,scala 的 Set 同样也是一个无序不重复的集合,同样也分为定长和变长
定长的新建方式

 val s = Set(1,2,3,4,3,4)

变长

val s1 = scala.collection.mutable.Set[Int]()

同样集合也支持这些灵活的加减操作。

在这里插入图片描述

总结

在scala中数组型结构的创建明显比python要复杂了,无论是数组还列表亦或是集合。scala都把他们分为可变和不可变类型。不可变类型类似于python中的元组,但是可变类型的操作增删便捷性还较为良好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值