【Scala学习笔记】3. Tuple、Array、Map


Scala深入浅出实战 第3讲 by 王家林

建议采用Scala Work Sheet进行本节实验

Tuple

元组,元组中可以由很多数据,读取Tuple数据时使用._的方式读取,并且索引从1开始。经常用Tuple接受函数的返回值。

val pair = (26,"Hello","Scala")
println(pair._1)
println(pair._2)
println(pair._3)

Tuple

Array

数组使用圆括号()读取,索引从0开始,向左的箭头符号<-是赋值的意思。第二种循环方式是增强for循环的写法。
Scala中的数组是以Java数组实现的。

  • 定长数组,长度不可改变的数组
val arr = Array(1,2,3,4,5)
for(i <- 0 until arr.length) println("arr("+i+") : " + arr(i))
for(elem <- arr) println(elem)
  • 变长数组,长度可改变的数组
    Scala中的ArrayBuffer实现了变长数组,需要进行包的导入
import scala.collection.mutable.ArrayBuffer

当不知道数组有多少个元素的情况下,可以先定义一个缓冲数组,然后调用.toArray,也可以使用toBuffer将定长数组转换成缓冲数组。
Array & ArrayBuffer

  • 数组转换
val a = Array(1,2,3,4,5)
val mul2 = for(elem <- a) yield elem * 2
val mul2o = for(elem <- a if elem%2 == 0) yield elem * 2

上面的代码将产生一个新的数组,原始数组是定长数组,那么结果也是定长数组,如果原始数组是缓冲数组,那么结果也是缓冲数组。第二个循环当需要满足特定条件的元素进行转换时,在for中加入if条件判断。

Map

只取key或只取value时,需要使用单下划线_作为占位符,使用占位符后不能对其进行引用。

val ages = Map("Spark" -> 6,"Scala" -> 10)
for((k,v) <- ages) println("Key is " + k + ", Value is " + v)
for((k,_) <- ages) println("Key is " + k)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值