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],

Другие вопросы по тегам