1.+:和:+
首先,+:以及:+均为Scala语言中用于追加不可变数组和列表数据的函数,两个函数的运用形式有很多:
val list = List[Int](2, 2, 2, 2)
//形式
val l1 = list.+:(1)//同list:+1
println(l1)//List(1, 2, 2, 2, 2)
val l2 = list.:+(1)//同1+:list
println(l2)//List(2, 2, 2, 2, 1)
//注:不可变列表数据长度不可变,追加后产生新列表
//尾部追加
val list01 = list :+ 1
println(list01) //List(2, 2, 2, 2, 1)
//头部追加
val list02 = 1 +: list
println(list02) //List(1, 2, 2, 2, 2)
//注:写代码时注意,底层逻辑是从:一边开熟读,故列表要在:一侧
2. ++ , ++: , :++ , ::: ,::
前三个函数皆可用于不可变数组,不可变列表的合并,作用相同,只是底层运行逻辑不同
:
val list01 = List[Int](2, 2, 2, 2)
val list02 = List[Int](3, 3, 3, 3)
val l01 = list01 ++ list02
val l02 = list01 :++ list02
val l03 = list01 ++: list02
println(l01) //List(2, 2, 2, 2, 3, 3, 3, 3)
println(l02) //List(2, 2, 2, 2, 3, 3, 3, 3)
println(l03) //List(2, 2, 2, 2, 3, 3, 3, 3)
::: 只可用于列表合并
val l04 = list01 ::: list02
println(l04) //List(2, 2, 2, 2, 3, 3, 3, 3)
:: 用于列表之前追加数据,同 :+
val list3 = 1 :: list
val list5 = 1 :: 2 :: 3 :: 4 :: Nil
3.+= 和 +=:
用于可变数组列表追加数据:
val bulist01 = ListBuffer[Int](2, 2, 2, 2)
val bulist02 = ListBuffer[Int](3, 3, 3, 3)
bulist01 += 1
println(bulist01) //ListBuffer(2, 2, 2, 2, 1)
3+=:bulist01
println(bulist01) //ListBuffer(3, 2, 2, 2, 2, 1)
//注:可变集合长度可改变,数据可修改
4.++= 和 --=
++= :合并列表
val bulist01 = ListBuffer[Int](2, 2, 2, 2)
val bulist02 = ListBuffer[Int](3, 3, 3, 3)
//将bulist02合并到bulist01中(改变的是bulist01的数据)
bulist01++=bulist02
println(bulist01) //ListBuffer(2, 2, 2, 2, 3, 3, 3, 3)
--=:对数据进行过滤
val bulist01 = ListBuffer[Int](2, 2, 2, 2,3,3,4)
val bulist02 = ListBuffer[Int](3, 3, 3, 3)
//获取lbulist01中有而bulist02中没有的数据 - 差集
bulist01--=bulist02 //ListBuffer(2, 2, 2, 2, 4)
println(bulist01)