我在Scala中填充HashMap,如下所示:
val hashMap = new HashMap[P, List[T]]() { list.map(x => put(x.param1, x.param1.elements)) }
问题是,hashMap
的大小只有1而list
的大小为3。
我在这里做错了什么?
答案 0 :(得分:2)
您将命令式命令(undefined
,put
)与功能结构(new HashMap
)混合在一起。这样做不太好。
你应该做什么(如果我正确理解你的目标):
map
另外,请注意,如果列表中的多个元素具有相同的list.map(x => x.param1 -> x.param1.elements).toMap[P, List[T]]
,则只会保留最后一个元素,因为param1
只能为给定的密钥设置一个值。