package cn.scala_base

 /**
* map常用操作
*/
object Map { def main(args: Array[String]): Unit = { //1.不可变map(有序)
val map1 = scala.collection.immutable.Map("wyc"->30,"tele"->20,"yeye"->100,"haha"->1000);
println(map1("wyc"));
println("map1---" + map1); //error
// map1("wyc")=100; //2. 可变map
val map2 = scala.collection.mutable.Map("wyc"->30,"tele"->20,"yeye"->100);
map2("wyc")=10000;
println(map2("wyc")); val map3 = scala.collection.mutable.Map(("wyc",100),("tele",1000),("yeye",10000));
println(map3("wyc")); //3.创建HashMap(无序)
val hashMap = new scala.collection.mutable.HashMap[String,Int]; //为map增加元素
hashMap += ("wyc"->1);
println(hashMap("wyc")) //移除元素
hashMap -= "wyc"; //检查key是否存在
if(hashMap.contains("wyc")) println(hashMap("wyc")) else println(0); //使用getOrElse进行检查
println(hashMap.getOrElse("wyc","不存在")); //根据key进行排序的SortedMap,注意是immutable
val sortedMap = scala.collection.immutable.SortedMap("wyc"->100,"tele"->1000);
println("sortedMap----" + sortedMap); //有序的LinkedHashMap
val linkedHashMap = scala.collection.mutable.LinkedHashMap("wyc"->100,"tele"->1000);
println("linkedHashMap----" + linkedHashMap); //对于不可变的map1进行更新,其实是返回新的不可变map
val mapX = map1 + ("newEntry"->1);
val mapY = map1 - "wyc"; //遍历Map
for((key,value)<- map3) {
println(key + ":" + value);
} for(key <- map3.keySet) {
println(key + ":" + map3(key));
} //只遍历values
/*for(value<-map3.values) {
println(value);
}*/ //反转key与value
val reverseMap = for((key,value)<-map3) yield (value,key);
for(key<- reverseMap.keySet) {
println(key + ":" + reverseMap(key));
} } }

scala map的常用操作的更多相关文章

  1. Map的常用操作

    public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map. ...

  2. 快学Scala 第三课 (定长数组,变长数组, 数组循环, 数组转换, 数组常用操作)

    定长数组定义: val ar = new Array[Int](10) val arr = Array("aa", "bb") 定长数组赋值: arr(0) = ...

  3. Java Map常用操作

    Java之map常用操作 package basic; import java.util.HashMap; import java.util.Map; /** *Map常用操作方法 */ public ...

  4. scala - Map基础

    Map 构造Map 不可变: val map = Map("sa" -> 1, "s" -> 2)map("sa") = 3 / ...

  5. mongodb的常用操作

    对于nosql之前工作中有用到bekerlydb,最近开始了解mongodb,先简单写下mongodb的一些常用操作,当是个总结: 1.mongodb使用数据库(database)和集合(collec ...

  6. js,jQuery数组常用操作小结

    一.js中数组常用操作小结 (1) shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift() ...

  7. Scala基础类型与操作

    Scala基本类型及操作.程序控制结构 Scala基本类型及操作.程序控制结构 (一)Scala语言优势 自身语言特点: 纯面向对象编程的语言 函数式编程语言 函数式编程语言语言应该支持以下特性: 高 ...

  8. ArcGIS中的坐标系:基本概念和常用操作(一)

    本文呢是主要是借鉴李郎平李大大的博士论文和百度百科,里面还有一点点我自己的理解,希望能帮助自己加深对于坐标系的认识. 李大大的博客:http://blog.sciencenet.cn/u/Brume ...

  9. Hadoop2.7.6_02_HDFS常用操作

    1. HDFS常用操作 1.1. 查询 1.1.1.  浏览器查询 1.1.2. 命令行查询 [yun@mini04 bin]$ hadoop fs -ls / 1.2. 上传文件 [yun@mini ...

随机推荐

  1. 关于C++中用两个迭代器方式初始化string的知识

    string(iter1, iter2); 第一点:两个迭代器必须指向同一个容器. 第二点:iter2必须>=iter1. 第三点:假设iter1等于iter2,那么结果为空[] 另外一个比較特 ...

  2. Codeforces Beta Round #16 E. Fish (状压dp)(概率dp)

    Codeforces Beta Round #16 (Div. 2 Only) E. Fish 题目链接:## 点击打开链接 题意: 有 \(n\) 条鱼,每两条鱼相遇都会有其中一只吃掉对方,现在给你 ...

  3. 微信小程序踩坑- tabBar.list[3].selectedIconPath 大小超过 40kb

    重新启动微信小程序编辑器的时候遇到了这样的一个问题: tabBar.list[3].selectedIconPath 大小超过 40kb 微信小程序开发的过程之中总会出现这样或者那样的错误,需要我们耐 ...

  4. 折腾了我两天的springboot数据源datasource循环依赖问题,都被搞疯掉了

    在做项目重构的时候增加了两个功能 1.多数据源. 2.token的验证从以前的数据库验证,移到了redis端. 1.多数据源使用 druid-spring-boot-starter 套件 其核心代码如 ...

  5. Android Java使用JavaMail API发送和接收邮件的代码示例

    JavaMail是Oracle甲骨文开发的Java邮件类API,支持多种邮件协议,这里我们就来看一下Java使用JavaMail API发送和接收邮件的代码示例 使用Javamail发送邮件,必需的j ...

  6. 【z09】关押罪犯

    描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气值"(一个正整 ...

  7. GTK入门学习:glade的使用

    搭建好环境后,在终端敲 glade 就可以启动glade工具. glade的总体框图: 经常使用控件选择区:列举了经常使用的控件,经常使用的有三类:顶层(主窗体等).容器(各种布局容器等).控制和显示 ...

  8. spark 编程教程

      参考: 英文:https://spark.apache.org/docs/latest/programming-guide.html 中文:http://www.cnblogs.com/lujin ...

  9. js中退出语句break,continue和return 比较 (转)

    在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 首先:break和continue两个一 ...

  10. UTC、GTC时间和本地时间(Linux默认使用UTC时间,要修改一下)

    1.问题 对于装有Windows和Linux系统的机器,进入Windows显示的时间和Linux不一致,Linux中的时间比Windows提前8个小时. 2.解决方法 修改/etc/default/r ...