HashMap 只有一个元素而不是三个



我在Scala中填充一个HashMap,如下所示:

val hashMap = new HashMap[P, List[T]]() { list.map(x => put(x.param1, x.param1.elements)) }

问题是hashMap的大小只有 1,而 list 的大小为 3。

我在这里做错了什么?

你正在混合命令式命令(putnew HashMap(和函数结构(map(。这不能表现得很好。

你应该做什么(如果我正确理解你的目标(:

list.map(x => x.param1 -> x.param1.elements).toMap[P, List[T]]

另外,请注意,如果列表中的多个元素具有相同的param1,则只会保留最后一个元素,因为给定键Map只能有一个值。

最新更新