集合分类
Scala 集合分为两大类 可变(mutable) 和 不可变(immutable)
- 不可变:数组声明好,数组的长度就不能再改变
- 可变:数组声明好,可就改变数组的长度
三大集合
Seq 集合
有序 可重复
代表
List()
不可变的 List()
默认无需导入
创建
val list: List[Int] = List(1, 2, 3, 4)
修改内容
list.updated(1,11) //通过索引修改
查,遍历
// 查,取值 list(索引) // 遍历 list.foreach(println) for (l <- list){ println(l) }
可变 ListBuffer()
需要导入
创建集合
var listBuffer: ListBuffer[Int] = ListBuffer(1, 2, 3, 4)
增加元素
listBuffer.insert(1,11) // 索引插入 listBuffer.append(1) // 加在最后
删除元素
listBuffer.remove(1) // 通过索引删值 listBuffer.remove(1,2) // 索引,几个 listBuffer.drop(2) // 从 索引0 开始删几个
修改元素
listBuffer.update(0,11) // 通过索引修改元素
查询,遍历元素
// 查询,取值 listBuffer(索引) // 遍历 listBuffer.foreach(println) for ( l <- listBuffer) { println(l) }
特殊的 List() 集合
空集合
println(List()) // List() println(Nil) // List() 用处 1 :: 2 :: Nil
Set 集合
无序 不可重复
使用
Set 集合
需要记住,无序(就表示需要索引
的操作不能用
)主要使用是生成新的集合,本身变化不大
创建 Set 集合
// 默认是不可变的 val set: Set[Int] = Set(1, 2, 1, 2, 3, 4) // 可变 Set 集合 val mSet: mutable.Set[Int] = mutable.Set(1, 2, 3, 44, 5, 5, 5, 1, 2)
一些操作
// 添加 删除 var mSet1: mutable.Set[Int] = mSet + 11 println(mSet1.mkString(",")) var mSet2: mutable.Set[Int] = mSet - 1 println(mSet2.mkString(",")) --------------------------------------- 1,2,3,5,11,44 2,3,5,44
Map 集合
无序,(k -> v),key 不能重复,value 可重复。
创建
// 创建不可变 val map: Map[String, Int] = Map("a" -> 1, "b" -> 2) // 创建可变 val mMap: mutable.Map[String, Int] = mutable.Map("aa" -> 1, "bb" -> 2, "cc" -> 3)
增加
val map1: Map[String, Int] = map + ("c" -> 3) println(map1.mkString(",")) ------------------------------------------- a -> 1,b -> 2,c -> 3
修改
val map2: Map[String, Any] = map.updated("a", "11") println(map2.mkString(",")) // 可变Map 可以这样改 mMap("aa") = 11 println(mMap.mkString(",")) // 还可以通过 添加 覆盖的思想 修改 val map4: Map[String, Any] = map + ("a" -> "22") println(map4.mkString(",")) --------------------------------------------------- a -> 11,b -> 2 aa -> 11,bb -> 2,cc -> 3 a -> 22,b -> 2
健取值
val i: Int = map("a") println(i) --------------------- 1
删除
val map3: Map[String, Int] = map - "a" println(map3.mkString(",")) -------------------------------------- b -> 2
上一篇
Scala 元组
Scala 元组
版权声明:《 Scala 集合介绍 》为明妃原创文章,转载请注明出处!
最后编辑:2020-2-4 14:02:58