#scala
#scala
Вопрос:
Я хочу преобразовать
List(Map(AAA -> 1111), Map(BBB -> 22222), Map(CCC -> 3333))
Для
Map( AAA->111, BBB-> 222, CCC->333)
Я уже видел некоторые ответы ( flatten.toMap
или reduce(_ _)
), но они работают плохо.
- Я не должен создавать ‘var’ и новые функции
Комментарии:
1. в ожидаемом выводе вы хотите изменить значение. Я вижу
1111
, что он преобразуется в111
.flatten.map
работает, в чем проблема, с которой вы столкнулись?2. Нет неявных аргументов типа: ((type1, type2)) => IterableOnce[B_] Появляется это сообщение.
3. Хорошо, я не вижу никаких проблем с scala 2.13. Возможно, вы используете более низкую версию
4. Почему эти параметры не работают хорошо? У вас ошибка компиляции, ошибка времени выполнения или другой вывод?
5. Извините за всех… Проблема заключалась в неправильном сопоставлении типов
Ответ №1:
Вы действительно можете использовать flatMap с identity
функцией для преобразования его в список кортежей, а затем toMap, чтобы снова сделать его картой
l.flatMap(identity).toMap
Другой вариант
l.flatten.toMap
Результат:
Map(AAA -> 1111, BBB -> 22222, CCC -> 3333)
Комментарии:
1. Я бы
l.iterator.flatten.toMap