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

问题描述 投票:0回答:1

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

time hashset
1个回答
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由数组支持,当O(n)时将导致creating the array时间。

© www.soinside.com 2019 - 2024. All rights reserved.