【问题标题】:Convert java.util.Map to Scala List[NewObject]将 java.util.Map 转换为 Scala 列表[NewObject]
【发布时间】:2016-02-08 22:34:58
【问题描述】:

我有一个 java.util.Map[String, MyObject] 并想创建一个 Scala List[MyNewObject] 由地图的所有条目和一些特殊值组成。

我找到了一种方法,但是,这真的很丑:

val result = ListBuffer[MyNewObject]()
myJavaUtilMap.forEach
  (
   (es: Entry[String, MyObject]) => 
      { result += MyNewObject(es.getKey(), ey.getValue().getMyParameter); println("Aa")}
  )

我怎样才能摆脱 println("Aa")?只是删除没有帮助,因为 foreach 需要一个消费者,但 += 操作会产生一个列表....

有没有更优雅的方式将 java.util.Map 转换为 List[MyNewObject]?

【问题讨论】:

    标签: scala


    【解决方案1】:

    Scala 具有转换功能,可为您提供 Java 集合上 Scala 集合 API 的所有好方法:

    import collection.JavaConversions._
    val result = myJavaUtilMap.map{
      case (k,v) => MyNewObject(k, v.getMyParameter)
    }.toList
    

    顺便说一句:要定义一个返回Unit的函数,你可以显式指定返回类型:

    val f = (x: Int)  => x: Unit
    

    【讨论】:

    猜你喜欢
    • 2010-11-04
    • 2020-02-09
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 2013-01-21
    相关资源
    最近更新 更多