文章目录
- tuple
- 1.元组定义
- 2.Tuple元素访问
- 3.如果元素的len=2,称之为键值对对象,也称之为对偶元组
- 4.补充上节Map
- 5.Map集合遍历
- 6.集合之间相互转化
tuple
概念:scala语言采用特殊的方式将无关的数据作为一个整体,组合在一起’
1.元组定义
–Tuple3[Int,String,Boolean] 元组类型,3表示元素个数,后面[]装泛型
–关于数据类型 Tuple3[Int,String,Boolean]等价于(Int,String,Boolean)
–最大Tuple22 元素个数最多22个 函数式编程参数个数最多也是22个
–Tuple集合限制是数据的个数,不限制数据的类型;
//1.元组定义
val tuple: Tuple3[Int, String, Boolean] = (1, "asd", false)
val tuple1: (Int, String, Boolean) = (1, "asd", false)
2.Tuple元素访问
–没有循环操作,数据之间没有关系,没有相同的循环逻辑
–采用顺序号访问 tuple._1 访问第一个元素
–使用索引的方式访问 productElement(idx)
// 2.Tuple元素访问
println(tuple._1) //1
println(tuple._2) //asd
println(tuple._3) //false
3.如果元素的len=2,称之为键值对对象,也称之为对偶元组
–形式上和上结课map的键值对形式一样(“a”,1)
// 3.如果元素的len=2,称之为键值对对象,也称之为对偶元组
val t1 = ("a", 1)
val t2 = ("b", 2)
4.补充上节Map
Map定义可以使用键值对对象进行构建
// 4.Map定义可以使用键值对对象进行构建
import scala.collection.mutable
val map = mutable.Map(
("a",1),
("b",2),
("c",3)
)
println(map)//Map(b -> 2, a -> 1, c -> 3)
5.Map集合遍历
for (kv <- map){
print(kv._1+" ") //打印元组第一个元素
println(kv._2)
}
6.集合之间相互转化
Array,Seq,Set 任意转化直接使用toxxx()方法,想转化什么转化什么
–但是三者不能向Map转化,原因是没有键值对概念;
–Map可以向Array,Seq,Set转化,转化过程将键值对对象当作一个元素来看待;(“a”,1)作为一个元素
特殊情况,如果Array,Seq,Set的元素是对偶元组,那么可以向Map转化,不推荐
// 6.集合之间的转化
val ints = Array(1, 2, 3, 4)
val seq = ints.toSeq
val set = seq.toSet
val set1 = map.toSet
print(set1)