文章目录
- Seq序列
- 1.构建集合
- 2.List集合元素拼接&&集合拼接
- 3.可变Seq&&List
-
- [3.1 ListBuffer创建](#3.1 ListBuffer创建)
- [3.2 增删改查](#3.2 增删改查)
- [3.3 相互转化](#3.3 相互转化)
- Appendix
-
- 1.Scala起别名
- 2.Seq底层
- [3.关于运算符操作+: :+](#3.关于运算符操作+: :+)
- 4.空集合的表示
Seq序列
--Seq表示有序 ,数据可重复的集合
1.构建集合
// 1.构建Seq
val seq = Seq(1, 2, 3, 4)
val list = List(1, 1, 3, 4)
println(seq) //List(1, 2, 3, 4)
println(list) //List(1, 1, 3, 4)
list :+ 10 //不可变集合,加了没用
println(list :+ 10) //List(1, 1, 3, 4, 10)
// --增量式创建List
val list2 = 1 :: 2 :: 3 :: 4 :: List()
println(list2) //List(1, 2, 3, 4)
// 简化
val list3 = 1 :: 2 :: 3 :: 4 :: Nil
2.List集合元素拼接&&集合拼接
// 2.List集合添加数据 :: 和 :::
100::220::list3
println(list3) //List(1, 2, 3, 4) 不变集合不发生任何改变
var list9 = 100::220::list3
println(list9) //List(100, 220, 1, 2, 3, 4)
var list10 = list9:: list //::表示将冒号的左边当作一个元素添加到右边的集合
println(list10) //List(List(100, 220, 1, 2, 3, 4), 1, 1, 3, 4)
var list10_ = list9::: list //:::表示将集合左边的数据倒入集合右边(头插)
println(list10_) //List(100, 220, 1, 2, 3, 4, 1, 1, 3, 4)
3.可变Seq&&List
集合创建,使用apply方法,且请注意使用的是ListBuffer
增删改差
相互转化
toBuffer,toList
3.1 ListBuffer创建
注意:没有SeqBuffer
//1.集合创建,使用apply方法
val value = ListBuffer(1, 2, 3, 4)
3.2 增删改查
// 2.增删改差
value.append(999)
value.insert(0,-999)
value.update(1,-999)
value.appendAll(ListBuffer(8,7,6))
println(value) //ListBuffer(-999, -999, 2, 3, 4, 999, 8, 7, 6)
value.remove(0,2) //删除两个-999
println(value) //ListBuffer(2, 3, 4, 999, 8, 7, 6)
3.3 相互转化
toList()
toBuffer()
Appendix
1.Scala起别名
type JavaHsahMap = java.util.HashMap[String,String]
也就是将java.util.HashMap[String,String]起别名为JavaHashMap
起别名关键字type
2.Seq底层
scala中Seq是一个特质trait,无法直接构建对象,所以底层采用的是List集合
由于底层关系,上述两种写法都可以
3.关于运算符操作+: :+
此类运算符都是表示集合从:端进行+操作
例如:
list :+ 10
10 +: list
List(1, 1, 3, 4, 10)
4.空集合的表示
List()
Nil
//二者等价