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方法.类似访问的外观是有意的,遵循统一访问原则.