==> Scala中的数据集合:Map、列表、序列、集

==>集合有两种:可变集合,不可变集合

--->可变集合可以对集合进行修改操作

--->不可变集合集合从不改变,因此可以安全的共享其引用


==>Map

--->可变

valemployeeInfo=scala.collection.mutable.Map("name"->"Tom","age"->25,"gender"->"man")

--->不可变

valemployeeInfo=scala.collection.immutable.Map("name"->"Tom","age"->25,"gender"->"man")


--->操作

valemployeeInfo=scala.collection.mutable.Map("name"->"Tom","age"->25,"gender"->"man")//获取集合中的值employeeInfo("name")//若Key不存在,会抛出Exception,因此,需要进行判断if(employeeInfo.contains("girlfriend")){employeeInfo("girlfriend")}else{-1}//可以简写成employeeInfo.getOrElse("girlfriend",-1)//可以修改可变集合中的值employeeInfo("age")=28//也可以添加字数employeeInfo+="girlfriend"->"如花"


==>列表

--->可变

importscala.collection.mutable//定义一个可变列表valtestList=mutable.LinkedList(1,2,3,4,5)//对列表进行操作:将列表中的每个值乘以2//首先定义一个指针指向列表的开始varcur=testList//使用循环操作列表,Nil相当于nullwhile(cur!=Nil){//elem相当于一个变量,将循环取出的值赋给此变量,乘以2cur.elem=cur.elem*2//将指针指向下一个元素cur=cur.next}println(testList)



--->不可变

定义一个不可变列表valtestList=List(1,2,3,4)定义一个空列表valtestList1:List[Nothing]=List()定义一个二维列表valtestList2:List[List[Int]]=List(List(1,2,3),List(4,5,6))判断列表是否为空testList.isEmpty查看列表第一个元素testList.headtail返回除去第一个元素后其余的所有元素testList.tail


==>序列

--->Range(2,5)

--->(2 to 4)

--->(2 until 5)


==>集 (set)不重复元素的集合,不保留元素插入的顺序,默认以Hash集实现

--->创建集以及操作

//创建一个集vartestSet=Set(1,3,5,9,8)//向集中添加元素testSet+="hello"//判断元素是否存在testSetcontains(3)//判断一个集是否是它的子集Set(1,3)subsetOf(testSet)

--->集的运算(并集、交集、差集)

vartestset1=Set(1,2,3,4,5,6)vartestset2=Set(4,5,6,7,8,9)//并集testset1uniontestset2res8:scala.collection.immutable.Set[Int]=Set(5,1,6,9,2,7,3,8,4)//交集testset1intersecttestset2res10:scala.collection.immutable.Set[Int]=Set(5,6,4)//差集testset1difftestset2res11:scala.collection.immutable.Set[Int]=Set(1,2,3)