集合set
def main(args: Array[String]): Unit = {
//定义一个集合 这里默认导的是scala.collection.immutable.Set 即不可变的set
val set1=Set(1,2,3,3,4)
//set1.foreach(println)
val set2=Set(3,4)
//取得交集 使用interset函数
// for(item<-set1.intersect(set2)){
// println(item)
// }
//取得交集 使用语法糖操作符
// for(item<-(set1 & set2)){
// println(item)
// }
//取得差集 使用diff函数
// for(item<-set1.diff(set2)){
// println(item)
// }
//取得差集 使用语法糖操作符
// for(item<-(set1 &~ set2)){
// println(item)
// }
//set中使用filter函数 返回一个过滤之后的set
// for(item<-set1.filter(item=>{
// item>1
// })){
// println(item)
// }
//scale默认是不可变长的集合
import scala.collection.mutable.Set
val set3=Set[Int](1,2)
// +=可以为set添加元素
// set3.+=(100)
// set3.foreach(println)
// +不会改变原来的set 会返回一个新的set集合
// for(item<-set3.+(100)){
// println(item)
// }
}
字典Map
def main(args: Array[String]): Unit = {
//定义一个不可变的map 是scala.collection.immutable包下面的
//可变map就不写了 差不多的
//两种元素表达方式 使用 key->value 或者 (key,value)的方式
//key不能重复 重复相当于更新
val map1=Map[String,Int]("a"->1,"aa"->2,("b",10),("b",100))
val map2=Map[String,Int]("a"->11,"aa"->12,("b",110),("bbbb",1100))
//遍历
// map1.foreach(println)
// for(item<-map1){
// println(item)
// }
//获取value map.get(key) 返回some 找不到返回none
// .get返回some的值 .getOrElse可以安全的返回 若前面返回的是some 就返回some的值 返回的是none就返回我们指定的默认值
// println(map1.get("a").get)
// println(map1.get("aaaaaa").getOrElse("100"))
//遍历key
// for(key<-map1.keys){
// val value=map1.get(key).get
// println(s"key is $key,value is $value")
// }
//遍历value
// for(item<-map1.values){
// println(item)
// }
//字典的合并 产生一个新的map 元素基础是map1中的元素 同时使用map2的元素去更新map1
//更新的意思是 对于map2中的每一个元素 map中存在 则更新他 不存在就将该元素插入map1
// for(item<-map1.++(map2)){
// println(item)
// }
//使用filter 注意 map中的元素都是二元组
// val afterFilter: Map[String, Int] = map1.filter(item => {
// val key = item._1
// val value = item._2
// value > 1
// })
// afterFilter.foreach(println)
}
元组Tuple
def main(args: Array[String]): Unit = {
//定义元组 可以放置任意类型的元素 但是长度最多是22
//元组可以new 也可以不new 甚至直接 使用()创建
val tuple1 = new Tuple1[Int](1)
val tuple2 = new Tuple2[Int,String](1,"aaa")
val tuple3 = Tuple3[Int,String,Char](1,"aaa",'c')
val tuple4 = (1, 2, 3, "a", 'c', false)
//元组的遍历 无法只用for foreach 只能使用迭代器
val iterator = tuple4.productIterator
// iterator.foreach(println)
// while(iterator.hasNext){
// println(iterator.next())
// }
//toString方法
// println(tuple3.toString())
//特殊 只有Tuple2有的swap方法
// println(tuple2.swap)
}