Scala 05 集合(二)Set、Map、Tuple、Option

1 Set :无序,不可重复

scala> val s = Set(1, 2, 3, 1, 2, 5, 6)
s: scala.collection.immutable.Set[Int] = Set(5, 1, 6, 2, 3)

// 可变Set
scala> val set = scala.collection.mutable.Set[Int]()
set: scala.collection.mutable.Set[Int] = Set()

scala> set += 1
res53: set.type = Set(1)

scala> set += (1, 2, 3, 4)
res54: set.type = Set(1, 2, 3, 4)

2 Map

// 定义一个Map
scala> val students = Map("lisi" -> "class 1", "zhangsan" -> "class 2", "wanger" -> "class 3")
students: scala.collection.immutable.Map[String,String] = Map(lisi -> class 1, zhangsan -> class 2, wanger -> class 3)

// Map的key
scala>   students.keys
res55: Iterable[String] = Set(lisi, zhangsan, wanger)

// Map的value
scala>   students.values
res56: Iterable[String] = MapLike(class 1, class 2, class 3)

scala>   students.isEmpty
res57: Boolean = false

// 定义一个可变的Map
scala>   val students2 = scala.collection.mutable.Map[String, String]()
students2: scala.collection.mutable.Map[String,String] = Map()

scala>   students2 += ("zhaosi" -> "class 4")
res58: students2.type = Map(zhaosi -> class 4)

// 合并两个Map,结果是可变的Map
scala>   students ++ students2
res59: scala.collection.immutable.Map[String,String] = Map(lisi -> class 1, zhangsan -> class 2, wanger -> class 3, zhaosi -> class 4)

// 遍历Map
scala>   students.keys.foreach { i =>
     |     print("key = " + i)
     |     println("value = " + students(i))
     |   }
key = lisivalue = class 1
key = zhangsanvalue = class 2
key = wangervalue = class 3

scala>
     |   students.contains("lisi")
res62: Boolean = true

3 Tuple:不可变,可以包含不同类型的元素

// 定义tuple
scala> val t = (1, 3.14, "lisi")
t: (Int, Double, String) = (1,3.14,lisi)

scala> val t2 = Tuple3(1, 3.14, "zhangsan")
t2: (Int, Double, String) = (1,3.14,zhangsan)

// 遍历tuple
scala> t.productIterator.foreach { i => println("value = " + i) }
value = 1
value = 3.14
value = lisi

// 通过下标访问元素
scala> t._1
res66: Int = 1

scala> t._2
res67: Double = 3.14

// 转换成字符串
scala> t.toString()
res68: String = (1,3.14,lisi)

4 Option:用来表示一个值是可选的

Option[T] 是一个类型为 T 的可选值的容器: 如果值存在, Option[T] 就是一个 Some[T] ,如果不存在, Option[T] 就是对象 None 。

scala> val students = Map("lisi" -> "class 1", "zhangsan" -> "class 2", "wanger" -> "class 3")
students: scala.collection.immutable.Map[String,String] = Map(lisi -> class 1, zhangsan -> class 2, wanger -> class 3)

scala> students.get("list")
res69: Option[String] = None

scala> students.get("lisi")
res70: Option[String] = Some(class 1)
scala> val o1=Some(5)
o1: Some[Int] = Some(5)

scala> val o2=None
o2: None.type = None

scala> o1.getOrElse(0)
res72: Int = 5

// 没有取到值就使用给定的值
scala>  o2.getOrElse(10)
res73: Int = 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值