Scala映射到HashMap

Pab*_*dez 6 collections scala map

鉴于此类的List一些Person对象:

class Person(val id : Long, val name : String)

使用idfor键和name值获取(java)HashMap的"scala方式"是什么?

如果最佳答案不包括使用.map,请提供一个示例,即使它更难.

谢谢.

编辑

这就是我现在所拥有的,但它不是一成不变的:

val map = new HashMap[Long, String]
personList.foreach { p => map.put(p.getId, p.getName) }

return map
Run Code Online (Sandbox Code Playgroud)

mis*_*tor 11

import collection.JavaConverters._
val map = personList.map(p => (p.id, p.name)).toMap.asJava
Run Code Online (Sandbox Code Playgroud)
  • personList有类型List[Person].

  • 之后.map的操作,你List[Tuple2[Long, String]](通常写作,List[(Long, String)]).

  • 之后.toMap,你得到了Map[Long, String].

  • 而且.asJava,顾名思义,将其转换为Java地图.

你不需要定义.getName,.getid..name并且.id已经是getter方法.类似访问的外观是有意的,遵循统一访问原则.