Scala - Как конвертировать карту [Int,List[List[IntVar]]] в
Я новичок в программировании Scala, и функция flatmap доставляет мне головную боль.
Прежде чем вы попросите меня выполнить поиск, я провел небольшое исследование по Stackru: https://stackru.com/search?q=scala+map+to+list но я не нашел чего-то, что могло бы легко решить мою проблему.
Вот моя проблема:
Для проекта программирования Scala с Якопом ( http://jacopguide.osolpro.com/guideJaCoP.html),
Мне нужно конвертировать такую карту
Map[Int,List[List[IntVar]]]
к:
List[T]
// In my case , only a List[IntVar]
Я знаю, что я должен использовать flatMap несколько раз, но мне интересно, как правильно использовать это в моем случае.
Спасибо за вашу помощь
1 ответ
Если вы хотите каждый IntVar
Из значений карты вы можете сделать следующее:
map.values.flatten.flatten.toList
Призыв к values
возвращает Iterable
содержащий все значения карты. В этом случае он возвращает объект типа Iterable[List[List[IntVar]]]
, Первый flatten
-призыв на этом объекте выравнивает его до Iterable[List[IntVar]]
, Второй flatten
Вызов сплющивает этот объект дальше Iterable[IntVar]
, Наконец, toList
метод преобразует его в List[IntVar]
,