Hashset toList()在Kotlin中的时间复杂度,是否恒定?

时间:2020-01-19 18:51:28

标签: time hashset

我以为它可能是O(1),但无法在线找到任何信息。

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