学习scala笔记--6 scala map、tuple

本文主要介绍了Scala中Map和Tuple的使用。包括创建不可变和可变Map,Map的合并操作,通过元组创建Map,获取Map的值、判断key是否存在等操作,还介绍了SortedMap和LinkedHashMap的特点。同时,对Tuple的创建、zip操作以及元素访问进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

scala  map  tuple

 

 

 

默认是map 是不可变map immutable.Map

 

scala> val a= Map("a"-> 1 ,"b"->2)

a: scala.collection.immutable.Map[String,Int] = Map(a -> 1, b -> 2)

 

 

 

----------------------------------

 

可以指定创建  可变map

 

scala> val b = scala.collection.mutable.Map("c"->3,"d"->4)

b: scala.collection.mutable.Map[String,Int] = Map(d -> 4, c -> 3)

 

 

----------------------------------

 

map的合并

 

scala> val b = scala.collection.mutable.Map("c"->3,"d"->4)

b: scala.collection.mutable.Map[String,Int] = Map(d -> 4, c -> 3)

 

scala> 

 

scala> val c  = scala.collection.mutable.Map("e"->3,"f"->4)

c: scala.collection.mutable.Map[String,Int] = Map(e -> 3, f -> 4)

 

scala> b ++= c

res0: b.type = Map(e -> 3, d -> 4, c -> 3, f -> 4)

 

----------------------------------

 

 

通过元组创建:

 

scala> val g = Map(("a",1),("b",2),("c",3))

g: scala.collection.immutable.Map[String,Int] = Map(a -> 1, b -> 2, c -> 3)

 

 

----------------------------------

 

获取 值

 

scala> val x = g("a")

x: Int = 1

 

----------------------------------

 

判断是否存在key

 

scala> g.contains("a")

res2: Boolean = true

 

----------------------------------

 

scala> g.getOrElse("d",0)

res3: Int = 0

 

 

 

----------------------------------

 

遍历  

 

scala> for((k,v)<-g) println(k+"->"+v)

a->1

b->2

c->3

 

 

遍历key

 

scala> for(k <- g.keySet) println(k)

a

b

c

 

遍历 value

 

scala> for(v <- g.values) println(v)

1

2

3

 

----------------------------------

 

SortedMap 自动安装key排序

 

scala> val sm = scala.collection.immutable.Map("d"->1,"a"->2,"e"->3)

sm: scala.collection.immutable.Map[String,Int] = Map(d -> 1, a -> 2, e -> 3)

 

scala> val sm = scala.collection.immutable.SortedMap("d"->1,"a"->2,"e"->3)

sm: scala.collection.immutable.SortedMap[String,Int] = Map(a -> 2, d -> 1, e -> 3)

 

----------------------------------

 

自动维护插入顺序的 LinkedHashMap

 

scala> val h = scala.collection.mutable.LinkedHashMap[String,Int]()

h: scala.collection.mutable.LinkedHashMap[String,Int] = Map()

 

scala> h +=("x"->1)

res14: h.type = Map(x -> 1)

 

scala> h +=("y"->2)

res15: h.type = Map(x -> 1, y -> 2)

 

scala> h +=("z"->3)

res16: h.type = Map(x -> 1, y -> 2, z -> 3)

 

----------------------------------

 

 

tuple  元组

 

 

scala> var t = ("name","tom")

t: (String, String) = (name,tom)

 

scala> var t2 = ("name","tom","age")

t2: (String, String, String) = (name,tom,age)

 

 

----------------------------------

 

 

zip操作

 

scala> val a = Array("a","b","c")

a: Array[String] = Array(a, b, c)

 

scala> val b = Array("1","2","3")

b: Array[String] = Array(1, 2, 3)

 

scala> var t = a.zip(b)

t: Array[(String, String)] = Array((a,1), (b,2), (c,3))

 

 

----------------------------------

 

访问 tuple 元素  t._1

 

scala> var t = ("name","tom")

t: (String, String) = (name,tom)

 

scala> t._1

res20: String = name

 

scala> t._2

res21: String = tom

 

 

----------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值