一、List
list集合有顺序,有索引,元素可重复
1、Nil 空列表
val lst=Nilprintln(Nil)//List()//向左侧添加一个元素,::起到右连接的作用。val lst1=8::(4::(0::Nil))println(lst1)//List(8, 4, 0)
2、创建集合
//调用apply方法进行创建val list = List(1,2,4,5,9,5)println(list.isEmpty)//查看头部元素println(list.head)//1//查看尾部元素println(list.tail)//List(2, 4, 5, 9, 5)//查看最后一个元素println(list.last)//5//计算集合的和println(list.sum)//26//创建求和方法def sums(l:List[Int]):Int={if(l.isEmpty){0}else{l.head+sums(l.tail)}}sums(list)
3、增删查(不可改)
val list = List(1,2,3,4)val list2 = List(5,6,7,3)//添加元素都添加到集合的左侧//添加元素第一种val list3=0::listprintln(list3)//List(0, 1, 2, 3, 4)//添加元素第二种val list4 = list2.::(4)println(list4)//List(4, 5, 6, 7, 3)//添加元素第三种val list5 = 8+:list2println(list5)//List(8, 5, 6, 7, 3)//添加元素第四种val list6 = list2.+:(5)println(list6)//List(5, 5, 6, 7, 3)//添加元素第五种,给尾部添加val list15 =list2.:+(7)println(list15)//List(5, 6, 7, 3, 7)//添加集合第一种val list7 = list:::list2println(list7)//List(1, 2, 3, 4, 5, 6, 7, 3)//添加集合第二种val list8 = list.:::(list2)println(list8) //List(5, 6, 7, 3, 1, 2, 3, 4)//添加集合第三种val list11 = list++list2println(list11)//List(1, 2, 3, 4, 5, 6, 7, 3)//添加集合第四种val list16 = list.++(list2)println(list16)//List(1, 2, 3, 4, 5, 6, 7, 3)//整合两个集合为一个新的集合//union:整合两个集合中的元素为一个新的集合。新的集合包含两个集合中所有的元素val list12 = list.union(list2)println(list12)//List(1, 2, 3, 4, 5, 6, 7, 3)//针对集合中的元素进行去重val distinct = list12.distinctprintln(distinct)//List(1, 2, 3, 4, 5, 6, 7)//删除元素//drop会返回一个新的集合,原集合保持不变,n代表删除几个元素val list13 = list.drop(2)val list14 = list.dropRight(2)println(list13)//List(3, 4)println(list14)//List(1, 2)//查询元素,n是集合下标println(list(3))//4
4、集合的遍历
val list = List(1,3.3,"hello",9)//第一种方式for(i<-list){println(i)}//第二种方式for(i<-0 to list.length-1){println(list(i))}//第三种方式list.foreach(println)
5、可变集合的使用
val blist= ListBuffer[Int](1,2,3,4,9)//改blist(3)=0println(blist)//ListBuffer(1, 2, 3, 0, 9)//增加blist.append(5,8)println(blist)//ListBuffer(1, 2, 3, 0, 9, 5, 8)//排序println(blist.sorted)//ListBuffer(0, 1, 2, 3, 5, 8, 9)
二、Set
set集合无序,没有索引,元素不可重复
1、不可变集合
//不可变集合的创建val set = Set(1,2,3,5)println(set)//Set(1, 2, 3, 5)//添加元素var set1=set+9println(set1)//Set(5, 1, 9, 2, 3)//添加集合var set2=Set(3,4,5,6)var set3=set++set2println(set3)//Set(5, 1, 6, 2, 3, 4)//删除元素val set4 = set.drop(3)println(set4)//Set(5)//删除元素第二种val set5 = set.-(1,5)println(set5)//Set(2, 3)//创建不可变集合第二种val hashSet = new HashSet[Int]()
2、可变的set集合
//要想创建可变的set集合,要导包,导包后,默认使用的就是可变集合import scala.collection.mutableimport scala.collection.mutable.Setval set = Set(1,2,3,4)//添加元素set.add(5)println(set)//Set(1, 5, 2, 3, 4)//添加元素第二种set+=6println(set)//Set(1, 5, 2, 6, 3, 4)//添加多个元素set.+=(22,33,44)println(set)//Set(33, 1, 5, 2, 6, 3, 4, 22, 44)//添加集合var set1=Set(11,66)set++=set1println(set)//Set(33, 66, 1, 5, 2, 6, 3, 4, 22, 11, 44)//添加集合第二种方式var set2=Set(666)val set3 = set.union(set2)println(set3)//Set(33, 66, 1, 5, 2, 666, 6, 3, 4, 22, 11, 44)//删除元素set.remove(33)println(set)//Set(66, 1, 5, 2, 6, 3, 4, 22, 11, 44)//删除多个元素set.-=(66,1,2)println(set)//Set(5, 6, 3, 4, 22, 11, 44)//第二种创建方式val hashSet1 = new mutable.HashSet[Int]()hashSet1.add(2)println(hashSet1)//Set(2)hashSet1.+=(4)println(hashSet1)//Set(2, 4)
3、Set集合的遍历
val set = Set(1,2,3,4,5,6,7)//第一种for(i<-set){println(i)}//第二种set.foreach(println)