1、映射Map

定义:

Map可以称之为映射。它是由键值对组成的集合。scala当中的Map集合与java当中的Map类似,也是key,value对形式的。

在scala中,Map也分为不可变Map和可变 Map

不可变map:

语法:

val/var map = Map(键->值, 键->值, 键->值...)    // 推荐,可读性更好 
val/var map = Map((键, 值), (键, 值), (键, 值), (键, 值)...)

大数据 -- Scala集合:Map、Set、List

可变map:

可变Map需要手动导入   import scala.collection.mutable.Map   , 定义语法与不可变Map一致。

大数据 -- Scala集合:Map、Set、List

map基本操作:

getOrElse("wangwu", -1)      获取key对应的value,吐过不存在则返回-1 

+=     添加key-value键值对

-=       删除key-value键值对

keys    获取所有的key

keySet  获取所有的key

values   获取所有的value

大数据 -- Scala集合:Map、Set、List

大数据 -- Scala集合:Map、Set、List

大数据 -- Scala集合:Map、Set、List

大数据 -- Scala集合:Map、Set、List

大数据 -- Scala集合:Map、Set、List

大数据 -- Scala集合:Map、Set、List

遍历map:

//第一种遍历
scala> for(k <- map.keys) println(k+" -> " +map(k))
lisi -> 50
zhangsan -> 30


//第二种遍历
scala> for((k,v) <- map) println(k+" -> "+v)
lisi -> 50
zhangsan -> 30

大数据 -- Scala集合:Map、Set、List

大数据 -- Scala集合:Map、Set、List

2、set集合

定义:set 代表没有重复元素的集合  ; 

特性:元素不重复 ; 不保证顺序

分为  不可变集合  和   可变集合

不可变set集合:

语法:

  • 创建一个空的不可变集    val/var 变量名 = Set[类型]()
  • 给定元素来创建一个不可变集    val/var 变量名 = Set[类型](元素1, 元素2, 元素3...)

注意:

这里对不可变的set集合进行添加删除等操作,对于该集合来说是没有发生任何变化,这里是生成了新的集合,新的集合相比于原来的集合来说发生了变化。

大数据 -- Scala集合:Map、Set、List

可变set集合:

要使用可变集,必须要手动导入:   import scala.collection.mutable.Set

大数据 -- Scala集合:Map、Set、List

3、列表List

List是scala中最重要的、也是最常用的数据结构

性质: 可以保存重复的值   ;   有先后顺序

在scala中,也有两种列表,一种是不可变列表、另一种是可变列表

不可变列表:

定义:不可变列表就是列表的元素、长度都是不可变的

语法: 

使用 List(元素1, 元素2, 元素3, ...) 来创建一个不可变列表

  • val/var 变量名 = List(元素1, 元素2, 元素3...)
  • 使用 Nil 创建一个不可变的空列表     val/var 变量名 = Nil
  • 使用 :: 方法创建一个不可变列表    val/var 变量名 = 元素1 :: 元素2 :: Nil

大数据 -- Scala集合:Map、Set、List

可变列表:

  • 可变列表就是列表的元素、长度都是可变的。

  • 要使用可变列表,先要导入 ==import scala.collection.mutable.ListBuffer==

语法:

使用ListBuffer元素类型 创建空的可变列表,语法结构       val/var 变量名 = ListBuffer[Int]()

使用ListBuffer(元素1, 元素2, 元素3...)创建可变列表,语法结构    val/var 变量名 = ListBuffer(元素1,元素2,元素3...)

大数据 -- Scala集合:Map、Set、List

列表操作:

//导包
scala> import scala.collection.mutable.ListBuffer
import scala.collection.mutable.ListBuffer

//定义一个可变的列表
scala> val list=ListBuffer(1,2,3,4)
list: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3, 4)

//获取第一个元素
scala> list(0)
res4: Int = 1
//获取第一个元素
scala> list.head
res5: Int = 1

//获取除了第一个元素外其他元素组成的列表
scala> list.tail
res6: scala.collection.mutable.ListBuffer[Int] = ListBuffer(2, 3, 4)

//添加单个元素
scala> list +=5
res7: list.type = ListBuffer(1, 2, 3, 4, 5)

//添加一个不可变的列表
scala> list ++=List(6,7)
res8: list.type = ListBuffer(1, 2, 3, 4, 5, 6, 7)

//添加一个可变的列表
scala> list ++=ListBuffer(8,9)
res9: list.type = ListBuffer(1, 2, 3, 4, 5, 6, 7, 8, 9)

//删除单个元素
scala> list -=9
res10: list.type = ListBuffer(1, 2, 3, 4, 5, 6, 7, 8)

//删除一个不可变的列表存在的元素
scala> list --=List(7,8)
res11: list.type = ListBuffer(1, 2, 3, 4, 5, 6)

//删除一个可变的列表存在的元素
scala> list --=ListBuffer(5,6)
res12: list.type = ListBuffer(1, 2, 3, 4)

//可变的列表转为不可变列表
scala> list.toList
res13: List[Int] = List(1, 2, 3, 4)

//可变的列表转为不可变数组
scala> list.toArray
res14: Array[Int] = Array(1, 2, 3, 4)

相关文章:

  • 2021-09-11
  • 2021-04-13
  • 2021-10-25
  • 2021-05-31
  • 2022-01-06
  • 2021-09-12
猜你喜欢
  • 2022-12-23
  • 2021-12-19
  • 2021-07-10
  • 2021-06-28
  • 2021-11-21
  • 2021-04-15
  • 2022-02-05
相关资源
相似解决方案