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

Gig*_*ron 9 scala list hashmap

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

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

Lui*_*hys 17

list.map(i => i.key -> i.value).toMap
Run Code Online (Sandbox Code Playgroud)

  • OP希望`HashMap`不是`Map` (5认同)

Dan*_*ral 8

也:

Map(list map (i => i.key -> i.value): _*)
Run Code Online (Sandbox Code Playgroud)


sam*_*est 5

从集合创建(记住不要有new关键字)

val result: HashMap[Int, Int] = HashMap(myCollection: _*)
Run Code Online (Sandbox Code Playgroud)