Создать HashMap в Scala из списка объектов без зацикливания - PullRequest
9 голосов
/ 31 октября 2011

У меня есть список объектов, каждый из которых имеет два поля интереса, которые я назову «ключ» и «значение». Из этого мне нужно построить HashMap, состоящий из записей, где «ключ» отображается на «значение».

Я знаю, что это можно сделать, просматривая список и вызывая hmap.put(obj.key, obj.value) для каждого элемента в списке. Но каким-то образом это «пахнет» так, как это можно сделать в одной простой строке кода, используя map или flatMap или какой-либо другой набор операций со списком Scala, с функциональной конструкцией. Правильно ли я "пахнул", и как бы это было сделано?

Ответы [ 3 ]

17 голосов
/ 31 октября 2011
list.map(i => i.key -> i.value).toMap
8 голосов
/ 31 октября 2011

Также:

Map(list map (i => i.key -> i.value): _*)
5 голосов
/ 31 декабря 2014

Для создания из коллекции (помните, что НЕ иметь ключевое слово new)

val result: HashMap[Int, Int] = HashMap(myCollection: _*)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...