Я хочу преобразовать карту пользователей своим друзьям на карту друзей своим друзьям. type Имя пользователя: String Так что карта [Имя пользователя, список [Пользователь]] на карте [Имя пользователя, список [Имя пользователя]], сделав каждый Список [Пользователь] в ключе.Рефакторинг стиля java для более функционального стиля scala
У меня есть следующий код ниже, который очень похож на java, что я хочу реорганизовать, чтобы сделать его более идоматическим scala-кодом.
val map: Map[String, List[User]] = {
var m = collection.mutable.Map[String, collection.mutable.ListBuffer[User]]()
for(user <- users) {
for(friend <- user.Friends) {
if (m.contains(friend)) {
//m.get(friend.username) += user
} else {
m += (friend -> collection.mutable.ListBuffer[User]())
//m.get(friend.username) += user
}
}
}
m.map{e =>
(e._1 -> e._2.toList)}.toMap
}
Я начал пытаться это:
users.map(user =>
user.friends.flatMap(friend =>
)
В качестве примечания, как я прилагаю к ListBuffer, по какой-то причине это не работает для меня:
m.get(friend.username) += user
А к новичкам будет добавлен listbuffer и append?
В словах, что вы пытаетесь достичь? – Alec
Я хочу преобразовать код, используя более функциональный стиль. –
Попробуйте что-нибудь вроде «У меня есть имена как String, каждый из которых указывает на список [String] соответствующих друзей с картой, и я пытаюсь вычислить« –
Esardes