在没有循环的对象列表中在Scala中创建HashMap

时间:2011-10-31 00:10:27

标签: list scala hashmap

我有一个对象列表,每个对象有两个感兴趣的字段,我称之为“键”和“值”。由此我需要构建一个由“key”映射到“value”的条目组成的HashMap。

我知道可以通过遍历列表并为列表中的每个项目调用hmap.put(obj.key, obj.value)来完成。但不知何故,这样的“闻起来”可以在一个简单的代码行中使用mapflatMap或其他一些Scala的List操作组合,其中包含一个功能构造。我是否“闻到”了,怎么做?

3 个答案:

答案 0 :(得分:18)

list.map(i => i.key -> i.value).toMap

答案 1 :(得分:8)

此外:

Map(list map (i => i.key -> i.value): _*)

答案 2 :(得分:5)

要从集合中创建(请记住,不要使用new关键字)

val result: HashMap[Int, Int] = HashMap(myCollection: _*)