博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
scala (6) Map
阅读量:4983 次
发布时间:2019-06-12

本文共 1994 字,大约阅读时间需要 6 分钟。

在scala中Map分为可变长(mutable)和不可变长(imtable)

/**      * 不可变长map 长度一旦初始化,就不能在进行更改      */    // 通过对偶元组的方式创建map    val map = Map("name" -> "leo", "age" -> 16, "sex" -> "男")    // 通过箭头的方式创建map    val map1 = Map(("name", "jack"), ("age", 16), ("sex", "女"))    // 通过两者混搭创建map    val map3 = Map("name" -> "tuoni", ("name", "hengr"))    // ++ 操作合并两个map 原map不变    val newmap = map ++ map1    println(map + "," + map1 + "," + map3 + "," + newmap)
  /**      * 不可变长Map映射,长度,值一旦初始化后不能再次被改变      */    val map4 = mutable.Map("a" -> "A")    map4.put("b", "B")    map4 += ("c" -> "C", "d" -> "D")    map4 ++= mutable.Map("hah" -> "HAH", ("a", "b"))    // 移除Map映射,mutable 包下    println(map4)    map4 -= ("b", "B")    map4 --= Set("a", "b")    map4.remove("c")    println(map4)    // Map(b -> B, hah -> HAH, d -> D, a -> b, c -> C)    // Map(hah -> HAH, d -> D)
/**      * map映射常用操作方法      */    // contains 方法判断一个key 是否存在,存在返回true,否则返回false    val map = mutable.Map("b" -> "B", "hah" -> "HAH", "d" -> "D", "a" -> "b", "c" -> "C")    println(map.contains("b"))    //获取key对应的值,注意如果通过 Map(“key”)获取对应的值应该进行key是否存在判断    if (map.contains("e")) {      println(map("e"))    }    // 映射的get 方法也是用来获取key 对应的值,但是这个方法返回的是一个option对象,这个option    // 对象有两个子类,如果有key 则返回Some(some对象中封装了key对应的值,可以通过some的get    // 方法获取该值)对象。    // 没有key则返回None对象    val value: Option[String] = map.get("a")    //isEmpty方法可以用来判断是Some对象还是None    if (!value.isEmpty) {      println(value)    } else {      println(value)    }
  // 如果key 存在则返回对应的值,如果key不存在则返回给定的值   val v1 = map.getOrElse("f","EEE")   println(v1)
 
/**      * LinkedHashMap 插入有序,会按照我们的插入顺序排序,因为底层是链表结构      */    val map5 = mutable.LinkedHashMap[String, String]()    map5 += ("d" -> "D")    map5 += (("a", "A"))    map5("c") = "C"    map5("b") = "B"    println(map5)    /**      * SortedMap 可以自动对Map的key进行排序      */    val map6 = mutable.SortedMap[String, String]()    map6("c") = "C"    map6("b") = "B"    map6("a") = "A"    println(map6)

 

转载于:https://www.cnblogs.com/mlfh1234/p/9240305.html

你可能感兴趣的文章
通过.frm表结构和.ibd文件恢复数据
查看>>
R语言之——字符串处理函数
查看>>
架构师速成5.1-小学gtd进阶
查看>>
Spring-aop(一)
查看>>
ucos在xp平台下开发环境搭建
查看>>
python基础入门while循环 格式化 编码初识
查看>>
cmake方式使用vlfeat
查看>>
windows下用纯C实现一个简陋的imshow:基于GDI
查看>>
struts2 自定义类型转换器
查看>>
cocos2d-x xna在有vs2012和vs2010的情况下的环境部署
查看>>
43-安装 Docker Machine
查看>>
c++学习(三):表达式和语句
查看>>
laravel框架基础知识总结
查看>>
nginx: 响应体太大
查看>>
字符串反混淆实战 Dotfuscator 4.9 字符串加密技术应对策略
查看>>
单例模式
查看>>
Robotium源码分析之Instrumentation进阶
查看>>
Android 交错 GridView
查看>>
(2)把BlackBerry作为插件安装到已有的Eclipse中
查看>>
VUE-es6
查看>>