I have a `values: mutableMapOf<String, List<...
# announcements
e
I have a
values: mutableMapOf<String, List<String>
. Is there a better way of adding items to it than:
Copy code
values[key] = (values[key] ?: emptyList()) + value
My API level is to low for
getOrDefault()
.
d
That looks ok to me. Expressive enough to understand.
e
Thanks, although it seems like there should be a nicer way. I’m writing an extension function…
Copy code
fun MutableMap<String, MutableList<String>>.add(key: String, value: String) =
    this[key]?.run {
        add(value)
    } ?: set(key, mutableListOf(value))
m
I use that pattern quote often:
Copy code
val values = mutableMapOf<String, MutableList<String>>()

fun add(key: String, value: String) {
    values.getOrPut(key) { mutableListOf() }.add(value)
}
👍 1