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