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
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信