scala的多种集合的使用(6)之映射Map的操作方法
1.创建映射
1)创建不可变的映射
+ View Code
2)创建可变的映射,要么用导入的方式将其带入作用域中,要么就在创建实例时指定scala.collection.mutable.Map类的完整路径。
+ View Code
3)在创建的时候创建一空可变的Map,之后在添加元素。
+ View Code
2.Map使用的场景
1)想要返回元素按照键有序的映射,请使用SortedMap。
+ View Code
2)按插入时的顺序返回元素,只有可变的LinkedHashMap。
+ View Code
3)按插入时的相反顺序返回元素,可以是可变的或者不可变的ListMap。
+ View Code
3.可变映射的添加、更新和删除元素
1)通过给键指定值的方式为可变映射添加元素。
+ View Code
2)通过+=方法添加一个或者多个元素。
+ View Code
3)用++=从另一个集合添加多个元素。
+ View Code
4)用-=的方法通过指定元素的键从映射中删除一个或者多个元素。
+ View Code
5)用--=删除集合里的指定的元素。
+ View Code
6)通过赋值值给元素的键更新元素。
+ View Code
4.不可变映射的添加、更新和删除元素
1)用+个方法添加一个或者多个元素,在这个过程中将结果赋给一个新的变量。
+ View Code
2)更新一个不可变映射的键值对,需要用+方法对键/值重新赋值,新值替换旧值。
+ View Code
3)使用-方法删除一个或者多个元素。
+ View Code
当一个不可变的变量声明为var时,它仍然是一个不可变的映射,不能给映射中的元素重新赋值。
5.映射值的访问
1)访问保存在映射中单独的值,如果键不存在,会抛出异常。为了避免这个问题,可以在创建映射时使用withDefaultValue的方法。该方法会创建一个默认值,如果键没有找到,映射会返回这个值。
+ View Code
2)寻找键时可以使用getOrElse方法,当指定的键找不到时,会返回默认值。
+ View Code
3)可以使用get方法返回Option对象。
+ View Code
6.映射的遍历
1)for循环遍历所有的映射元素。
+ View Code
2)匹配表达式配合foreach方法。
+ View Code
3)使用Tuple语法访问键/值字段。
+ View Code
4)如果想要映射中所有的键,keys方法返回Iterable。
+ View Code
5)如果想要映射中所有的value的值,用values方法可以遍历映射中所有的值。
+ View Code
7.操作映射的值
1)如果要遍历映射并对每个值进行操作,mapValues是个不错的选择。它可以在每个映射值上执行一个函数,然后返回修改后的映射。
+ View Code
2)transform方法可以同时使用键/值实现一个变换方法。
+ View Code
8.从映射中获取所有的键和值
1)用keySet的方法将以集合的方式获取所有的键。
+ View Code
2)用keys方法获得一个Iterable。
+ View Code
3)用keysIterator方法获取所有作为迭代器的键。
+ View Code
4)使用values方法可以获取映射中所有的值,并将结果转化为Iterable对象。
+ View Code
5)使用valuesIterator方法,返回Iterator对象。
+ View Code
keysIterator和valuesIterator方法都会从映射数据返回一个迭代器。这些方法不会创建一个新的集合,仅仅是提供遍历已存在的迭代器。
9.反转键值
可以用for推导反转映射的键值,然后将结果赋给一个新的变量。但是映射中,key是不重复的,value是可以重复的,但是在反转时可能会丢掉数据。
+ View Code
10.测试映射中键/值的存在
1)用contains方法测试映射中是否包含键。
+ View Code
2)使用valuesIterator方法搜索值,结合exists和contains。
+ View Code
11.根据键或者值对映射排序
1)可以用sortBy方法对值(_2)/键(_1)从低到高进对映射进行排序。
+ View Code
2)可以用sortWith方法对值(_2)/键(_1)按照升序或者降序对值进行排序。
+ View Code
关于_*:
它的作用是将数据转换,然后将其作为多个参数传给ListMap。
12.映射中键值的最值
1)对键进行排序。
+ View Code
2)对值进行排序 。
+ View Code
所谓的人生开挂,不过是厚积薄发! 欢迎评论和转载!https://www.cnblogs.com/zhaohadoopone/p/9534242.html