我以为它可能是O(1),但无法在线找到任何信息。
答案 0 :(得分:0)
这是相关的实现:
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
由一个数组支持,该数组在creating the array时产生O(n)
的时间。请记住,这最终取决于所使用的列表实现。现在是ArrayList
。