美文网首页
scala之map

scala之map

作者: 虚心若愚_b5c1 | 来源:发表于2020-01-08 15:27 被阅读0次

基本介绍

scala中的Map和java类似,也是一个散列表,它存储的内容也是键值对,scala中不可变的map是有序的,可变的map是无序的,一般都是用可变的scala.collection.motable.Map

构建Map

1. 不可变map

// 1.默认是不可变的
// 2.key-value,支持Any
// 3.在Map的底层,每对key-value是Tuple2
val map01 = Map("zhangsan"->10, "lisi"->20)

// 也可以写成这样
val map02 = Map(("A", 10), ("lisi", 20))

2. 可变的map

// 1.可变的map
// 2.意味着可以添加删除
val map03 = mutable.Map("zhangsan"->10, "lisi"->20)

3. 创建空的map

// 创建一个空的map
val map04 = new mutable.HashMap[String, Int]

4. 对偶元组

// 对偶元组
val map05 = mutable.Map(("a", 10), ("b", "11"))

取值

方式一:map(key)

// 取值
// 如果key存在,则返回对应的值
// 如果key不存在,则抛出异常【java.util.NoSuchElementException】
val result = map05("a")

方式二:map.get(key).get

// 如果key存在,则会返回some(value),然后调用some(value).get就能取出
// 如果key不存在,则会返回none
val result02 = map05.get("a").get

方式三:map.getOrElse()

val result03 = map05.getOrElse("c", "。。。。")

contain

使用contain方法检查key是否存在

// 如果key存在,返回true,否则返回false
if(map05.contains("a")){
    println(map05("a"))
}else
    println("不存在")
}

修改、添加、删除

map是可变的,才能修改,否则报错
如果key存在,则修改对应的值,key不存在,等于添加一个key-value

添加单个元素

val map05 = mutable.Map(("a", 10), ("b", "11"))
// key存在,则更新
map05("a") = 19

// key不存在,则添加
map05("c") = 100 

// 如果key存在,则会覆盖
map05 += ("a"-> 100)
    
// 不存在,则会添加
map05 += ("e"-> 101)

// 添加多个元素
map05 += ("f"-> 102, "g"->103)

// 删除元素,可以写多个,如果key存在,则删除,如果可以不存在,也不会报错
map05 -= ("f", "g")

map的遍历

// 第一种方式:取出k,v
for((k,v) <- map05){
    println("k:"+k+"   "+"v:"+v)
}

// 第二种方式:取出key
for (k <- map05.keys){
    println(k)
}

// 第二种方式:取出value
for(v<-map05.values){
    println(v)
}

// 这样取出方式,类型是tuple2
for(v<- map05){
    println(v._1+"  "+v._2)
}

相关文章

  • Scala语法

    转摘地址: Scala中的Map使用例子Scala 技术笔记之 Option Some None Map 不可变M...

  • Scala 简明速学04 集合-Map

    Scala 简明速学04 集合-Map Map Scala中Map提供键值对集合。 Map的初始化 Scala中的...

  • Scala使用fastJson整理

    内容整理 字符串Map => JSONObject => Scala Map Scala Map => JSONO...

  • scala之map

    基本介绍 scala中的Map和java类似,也是一个散列表,它存储的内容也是键值对,scala中不可变的map是...

  • fastjson

    scala using fastjson parse json JSONObject to Scala Map

  • scala的map操作

    scala的Map操作这里就涉及到了scala函数式编程的内容了。 Map有什么用? map可以对集合进行操作,将...

  • map & flatMap in scala

    用scala有段时间了,这篇文章是想总结一下map和flapMap的原理和用法 Scala Native map ...

  • scala map json 互转用例

    Scala map json 互转demo 运行结果

  • Scala相关文章索引(2)

    基本常识 scala编程第17章学习笔记(1)——集合类型 scala Map类型笔记 scala代码风格指南--...

  • scala map

    map创建不可变map:val score = Map("zhangsan"->90,"lisi"->80)可变m...

网友评论

      本文标题:scala之map

      本文链接:https://www.haomeiwen.com/subject/sqdsactx.html