一、List
list集合有顺序,有索引,元素可重复
1、Nil 空列表
val lst=Nil
println(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::list
println(list3)//List(0, 1, 2, 3, 4)
//添加元素第二种
val list4 = list2.::(4)
println(list4)//List(4, 5, 6, 7, 3)
//添加元素第三种
val list5 = 8+:list2
println(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:::list2
println(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++list2
println(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.distinct
println(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)=0
println(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+9
println(set1)//Set(5, 1, 9, 2, 3)
//添加集合
var set2=Set(3,4,5,6)
var set3=set++set2
println(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.mutable
import scala.collection.mutable.Set
val set = Set(1,2,3,4)
//添加元素
set.add(5)
println(set)//Set(1, 5, 2, 3, 4)
//添加元素第二种
set+=6
println(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++=set1
println(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)