我有一个对象列表,每个对象有两个感兴趣的字段,我称之为“键”和“值”。由此我需要构建一个由“key”映射到“value”的条目组成的HashMap。
我知道可以通过遍历列表并为列表中的每个项目调用hmap.put(obj.key, obj.value)
来完成。但不知何故,这样的“闻起来”可以在一个简单的代码行中使用map
或flatMap
或其他一些Scala的List操作组合,其中包含一个功能构造。我是否“闻到”了,怎么做?
答案 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: _*)