Scala集合Map
在scala中Map分为可变长(mutable)和不可变长(immutable)
/**
* 不可变长map 长度一旦初始化,就不能在进行更改
*/
// 通过箭头的方式创建map
val map = Map("name" -> "leo", "age" -> , "sex" -> "男") // 通过对偶元组的方式创建map
val map1 = Map(("name", "jack"), ("age", ), ("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)
Scala集合Map的更多相关文章
- Scala集合操作
大数据技术是数据的集合以及对数据集合的操作技术的统称,具体来说: 1.数据集合:会涉及数据的搜集.存储等,搜集会有很多技术,存储技术现在比较经典方案是使用Hadoop,不过也很多方案采用Kafka. ...
- scala集合
优先使用不可变集合.不可变集合适用于大多数情况,让程序易于理解和推断,因为它们是引用透明的( referentially transparent )因此缺省也是线程安全的. 使用可变集合时,明确地引用 ...
- scala集合和高级函数操作
scala常用函数操作 reduceLeft 是将集合的元素从左向右进行所需要的相应操作,图以减法为例展示,表达的算法是 : 1-2-3-4-5 例: (1 to 5).reduceLeft(_ ...
- Scala集合常用方法解析
Java 集合 : 数据的容器,可以在内部容纳数据 List : 有序,可重复的 Set : 无序,不可重复 Map : 无序,存储K-V键值对,key不可重复 scala 集合 : 可变集合( ...
- Scala集合笔记
Scala的集合框架类比Java提供了更多的一些方便的api,使得使用scala编程时代码变得非常精简,尤其是在Spark中,很多功能都是由scala的这些api构成的,所以,了解这些方法的使用,将更 ...
- Scala集合(二)
将函数映射到集合 map方法 val names = List("Peter" , "Paul", "Mary") names.map(_. ...
- Scala集合(一)
Scala集合的主要特质 Iterator,用来访问集合中所有元素 val coll = ... // 某种Iterable val iter = col.iterator while(iter.ha ...
- Scala集合类型详解
Scala集合 Scala提供了一套很好的集合实现,提供了一些集合类型的抽象. Scala 集合分为可变的和不可变的集合. 可变集合可以在适当的地方被更新或扩展.这意味着你可以修改,添加,移除一个集合 ...
- 再谈Scala集合
集合!集合!一个现代语言平台上的程序员每天代码里用的最多的大概就是该语言上的集合类了,Scala的集合丰富而强大,至今无出其右者,所以这次再回过头再梳理一下. 本文原文出处: 还是先上张图吧,这是我 ...
随机推荐
- Git使用七:修改最后一次提交、删除文件和重命名文件
修改最后一次提交: 在实际开发中,可能会遇到以下两种情景:情景一:版本刚一提交(commit)到仓库,突然想起漏掉两个文件还没有添加(add).情景二:版本刚一提交(commit)到仓库,突然想起版本 ...
- 学习笔记: 异常状态管理,托管堆垃圾回收,CLR寄宿
1. 2. string 在内存中是连续分配的,是一个数组, 数组的特点就是 查询块,增删慢,改动Array导致所有数组成员地址变动,成本高 而string又是在程序中经常变动的 ,所有 clr中对 ...
- lintcode 447 Search in a Big Sorted Array(倍增+二分)
题意:给一个按照升序排序的正整数数组.这个数组很大以至于只能通过固定的接口ArrayReader->get(k)来访问第k个数.并且也没有办法得知这个数组有多大.找到给出的整数target第一次 ...
- 使用 RAII 完成线程等待
当使用 std::thread 对象执行线程时,必须要调用 join() (或者 detach(),由于 detach() 可以立即调用,所以这里只考虑 join()) #include <io ...
- Spring AOP概念理解
1.我所知道的aop 初看aop,上来就是一大堆术语,而且还有个拉风的名字,面向切面编程,都说是OOP的一种有益补充等等.一下子让你不知所措,心想着:怪不得很多人都和我说aop多难多难.当我看进去以后 ...
- 有标号的DAG计数I~IV
题解: https://www.cnblogs.com/zhoushuyu/p/10077241.html 看到这么一篇,发现挺不错的..
- 前端技术之--HTML
1.一套规则,浏览器认识的规则. 2.开发者: 学习Html规则 开发后台程序: - 写Html文件(充当模板的作用) ****** - 数据库获取数据,然后替换到html文件的指定位置(Web框架) ...
- 想对list里面的对象进行排序
不必使用排序算法.实现Comparator接口就行
- python基础篇_005_迭代器和生成器
Python迭代器和生成器 1.迭代器 迭代:可以将某个数据集内的数据“一个挨着一个的取出来” for i in range(1, 10, 2): # in 后面的对象必须是一个可迭代的 print( ...
- Linux 安装 JDK 8
1. step1: 下载最新的 Java Archive # wget --no-cookies --no-check-certificate --header "Cookie: gpw_ ...