У меня есть класс ConfigEntry, определенный как
case class ConfigEntry(
key: String,
value: String
)
, и список:
val list: List[ConfigEntry] = List(
ConfigEntry("general.first", "general first value"),
ConfigEntry("general.second", "general second value"),
ConfigEntry("custom.first", "custom first value"),
ConfigEntry("custom.second", "custom second value")
)
Учитывая список ConfigEntry, мне нужна карта из свойства -> карта записей, которые удовлетворить это свойство
Например, если у меня есть
def getConfig: Map[String, Map[String, String]] = {
def getKey(key: String, index: Int): String = key.split("\\.")(index)
list.map { config =>
getKey(config.key, 0) -> Map(getKey(config.key, 1) -> config.value)
}.toMap
}
, я получаю результат
res0: Map[String,Map[String,String]] =
Map(
"general" ->
Map("second" -> "general second value"),
"custom" ->
Map("second" -> "custom second value")
)
, и он должен быть
res0: Map[String,Map[String,String]] =
Map(
"general" ->
Map(
"first" -> "general first value",
"second" -> "general second value"
),
"custom" ->
Map(
"first" -> "custom first value",
"second" -> "custom second value"
)
)
Первая запись из списка отсутствует. Вероятно, через .toMap
Как я могу это сделать?
Спасибо за любую предоставленную помощь