经常遇到以下情况:
检查Map 中的值是否存在,如果不存在则创建。最后返回值。如下:
// ...
val map = mutableMapOf<String, List<String>>()
var list = map.get(key)
if (list == null) {
list = arrayListOf()
map[key] = list
}
// ...
如上所示,需要从 map中取出key对应的 list 进行后续处理。如果不存在,则创建一个新的 list 实例并将其添加到 map 中。
Kotlin 标准库中的getOrPut方法实现了对这种情况的处理:
val list = map.getOrPut(key) { arrayListOf() }