我以为它可能是O(1),但无法在线找到任何信息。
这里是相关的实现:
public fun <T> Iterable<T>.toList(): List<T> {
if (this is Collection) {
return when (size) {
0 -> emptyList()
1 -> listOf(if (this is List) get(0) else iterator().next())
else -> this.toMutableList()
}
}
return this.toMutableList().optimizeReadOnlyList()
}
看起来可以归结为ArrayList(elements: Collection<E>)
中使用的toMutableList
构造函数的用法。 ArrayList
由数组支持,当O(n)
时将导致creating the array时间。