Seq
1.Seq集合
Seq是个特质,不能直接创建对象;可以使用其下面的类;因此学习Seq,就是学习Seq下面的类
1.1 不可变集合 List
Scala默认提供不可变集合,不可变集合对数据的操作会产生新的集合;
并且不可变集合一般都没有英文单词的方法;
object Scala04_Collection_Seq {
def main(args: Array[String]): Unit = {
//TODO 集合 Seq
//Scala默认提供的集合是不可变的
// List 是抽象类,但是有伴生对象
val list = List(1, 2, 3, 4)
val list1 = list :+ 5
val list2 = 5 +: list
println(list1)//List(1, 2, 3, 4, 5)
println(list2)//List(5, 1, 2, 3, 4)
//todo 2.空集合
//Scala中采用特殊对象Nil 代表空集合
println(List()) //List()
//3::Nil 等价于List(3)
Nil
val list3 = 1::2::3::Nil
println(list3) //List(1, 2, 3)
println(Nil) //List()
//::: 将集合拆成元素来添加
//:: 将对象当作整体来添加
val list4 = 4::5::list3:::Nil
val list5 = 4::5::list3::Nil
println(list4) //List(4, 5, 1, 2, 3)
println(list5) //List(4, 5, List(1, 2, 3))
}
}
代码中知识点小结:
-
运算符
+:
和:+
两个运算符的用法
用于给List添加元素,+
在:
哪边,元素就往哪边添加 -
空集合
List()
和Nil
对象是一样的
二者打印都是List()
-
::
和:::
用于给集合添加元素
1.2 可变集合 ListBuffer
object Scala04_Collection_Seq1 {
def main(args: Array[String]): Unit = {
val list : ListBuffer[Int] = ListBuffer(1, 2, 3, 4)
list.append(1,2,3,4)
list.update(1,10)
list.remove(2)
val str: String = list.mkString(",")
}
}
1.3 可变集合和不可变集合转换
import scala.collection.mutable
import scala.collection.mutable.ListBuffer
object ScalaCollection{
def main(args: Array[