请问Kotlin的mapTo()是否会覆盖数组中的数据?

时间:2017-12-03 17:51:56

标签: android kotlin

我正在尝试将用户从我的数据库映射到只有用户名的ArrayList,因为我需要数组中的第一个条目为空,因为字符串数组进入Spinner的数组适配器。

所以,如果我有这样的代码:

val users = ArrayList<String>()
users[0] = ""

dh.getUsers().mapTo(users) { it.toString() }

那么用户仍然会在第0个位置拥有“”,或者mapTo会覆盖它吗?

1 个答案:

答案 0 :(得分:2)

以下是mapTo()的代码:

public inline fun <T, R, C : MutableCollection<in R>> Iterable<T>.mapTo(destination: C, transform: (T) -> R): C {
    for (item in this)
        destination.add(transform(item))
    return destination
}

如您所见,它在add()对象上使用destination,因此它不会覆盖位置0的字符串和第一个{{1}的结果变换将插入位置toString()