Scala 可变map与不可变map互转

object test2 {  def main(args: Array[String]): Unit = {    val im = scala.collection.immutable.Map(1->"one",2->"two") //不可变map    val imh = scala.collection.immutable.HashMap(1->"one",2->"two") //不可变hashmap    val mu = scala.collection.mutable.Map(1->"one",2->"two") //可变map    println(im,manOf(im))    println(imh,manOf(imh))    println(mu,manOf(mu))

    //mutable.Map to immutable.Map    val mui = mu.toMap    println(mui,manOf(mui))

    //immutable.Map to mutable.Map    val immu = scala.collection.mutable.Map(im.toSeq:_*)    println(immu,manOf(immu))    val imhmu = scala.collection.mutable.Map(imh.toSeq:_*)    println(imhmu,manOf(imhmu))

  }

  //查看数据类型方法-manOf(data)  def manOf[T:Manifest](t:T):Manifest[T]=manifest[T]}

注意:


-.toSeq:将元组List转换成mutable.Map

-:_*:表示变长参数

原文地址:https://www.cnblogs.com/xl717/p/11739177.html

时间: 2024-10-08 15:48:29

Scala 可变map与不可变map互转的相关文章

java map接口,可变参数,Collections集合工具类

map接口的实现类存储成对的值,键--值.通过键来找到对应的值. Collection中的集合称为单列集合,Map中的集合称为双列集合 Map中常用的集合为HashMap集合.LinkedHashMap集合. HashMap<K,V>:存储数据采用的哈希表结构,元素的存取顺序不能保证一致.由于要保证键的唯一.不重复,需要重写键的hashCode()方法.equals()方法. LinkedHashMap<K,V>:HashMap下有个子类LinkedHashMap,存储数据采用的哈

Java的LinkedHashSet、Map接口、可变参数、集合嵌套、

1.LinkedHashSet:(1)LinkedHashSet集合保证元素的存入和取出的顺序: package com.oracle.demo01; import java.util.HashSet; import java.util.LinkedHashSet; public class demo01 { public static void main(String[] args) { //不能存重复元素,但是LinkedHashSet是有序的. LinkedHashSet<String>

Scala深入浅出实战经典《第88讲:Scala中使用For表达式实现map、flatMap、filter》笔记

简直了....晚上回来突然看到了进巨的原稿,忍不住撸了幅三爷,然后什么都没做就23点了... 第88讲:Scala中使用For表达式实现map.flatMap.filter Goal: For表达式实现map/flatMap/filter Gains: map/flatMap/filter是泛型 More: ...... ------------------------------------------------------------------------------------ 信息来

Scala中使用For表达式实现map、flatMap、filter

学习了Scala中使用For表达式实现map.flatMap.filter,可以实现广泛的应用 例子如下: Object For_Advancde { Def main(args: Array[String]) {} Def map[A,B](List: List[A], f:A=>B):List[B]= For (element <-list) yield f(element) Def flatmap[A,B](List: List[A], f:A=>B):List[B]= For (

(转)scala学习笔记(8): 列表的map,flatMap,zip和reduce

http://www.ituring.com.cn/article/131442 https://twitter.github.io/scala_school/zh_cn/collections.html#flatten 如果不了解map,flatMap,zip和reduce函数,你就不能真正地谈论scala.通过这些函数,我们可以非常容易地处理列表的内容并结合Option对象工作.你可以在这个站点找到更多的片段:Scala片段 1:FoldingScala 片段2:List的操作符魔法 让我们

【转】Scala 片段3:列表的map,flatMap,zip和reduce

原文链接 http://www.ituring.com.cn/article/131442 本文翻译自:Scala snippets 3: Lists together with Map, flatmap, zip and reduce [email protected] 如果不了解map,flatMap,zip和reduce函数,你就不能真正地谈论scala. 通过这些函数,我们可以非常容易地处理列表的内容并结合Option对象工作. 你可以在这个站点找到更多的片段: Scala片段 1:Fo

Json、JavaBean、Map、XML之间的互转

思路是JavaBean.Map.XML都可以用工具类很简单的转换为Json,进而实现互相转换 1.Map.XML与Json互转 mvn依赖 <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20171018</version> </dependency> entity public class Stud

可变对象与不可变对象

1.什么是可变对象? 属性变更时不新建对象的对象,如StringBuiler,可以将其中存储的字符串看作属性,调用StringBuilder.append(String str)追加字符串时,是在已有StringBuilder对象的基础上进行的,没有新建对象. 基本数据类型的包装类以及String类以外的几乎全部类的对象都是可变对象. 2.什么是不可变对象? 属性变更时必须新建对象的对象,如String,已有"String str='abc'",再次赋值"str='efg'&

linux 可变类型与不可变类型

Python的每个对象都分为可变和不可变,主要的核心类型中,数字.字符串.元组是不可变的,列表.字典是可变的. 可变类型和不可变类型有些地方区别很大,注意区分. 对不可变类型的变量重新赋值,实际上是重新创建一个不可变类型的对象,并将原来的变量重新指向新创建的对象(如果没有其他变量引用原有对象的话(即引用计数为0),原有对象就会被回收). 不可变类型 以int类型为例:实际上 i += 1 并不是真的在原有的int对象上+1,而是重新创建一个value为6的int对象,i引用自这个新的对象. 可以