Kotlin中的列表是LinkedList吗?

Java中最受欢迎的列表是ArrayListLinkedList

我在Kotlin看到ArrayListList。是List实际上是一个LinkedList?例如

val list = listof("1st", "2nd")


Smart猫小萌
浏览 352回答 3
3回答

临摹微笑

如果使用listOf,您将获得List带有只读List接口的某种实现,其中包含您作为参数提供的元素。通过使用此功能,意味着您不关心它的实现方式。它实际上由的支持Arrays.ArrayList,这是一个稍有不同的类。如果mutableListOf再次使用,则只是在说您想要包含实现的元素的东西MutableList,但是实现取决于标准库。同样,当前由来支持ArrayList,但这是一个实现细节。如果需要,有几个函数可以显式地返回更特定的类型。有arrayListOf,sortedSetOf,linkedMapOf,和一对夫妇更多-有不正好是一个linkedListOf,但你很可能实现它自己,如果你需要一个,不希望使用LinkedList构造函数。比较通用listOf,mutableListOf如果有更改,则最好在以后在平台之间共享代码-因为它们是标准库的一部分,因此它们可以ArrayList在JVM上返回,但是如果您编译为JavaScript或Native则可以返回特定于平台的实现。

智慧大石

它既不是LinkedList也不是ArrayList。根据源代码:public&nbsp;fun&nbsp;<T>&nbsp;listOf(element:&nbsp;T):&nbsp;List<T>&nbsp;=&nbsp;java.util.Collections.singletonList(element)或者,对于多个元素:public&nbsp;fun&nbsp;<T>&nbsp;listOf(vararg&nbsp;elements:&nbsp;T):&nbsp;List<T>&nbsp;=&nbsp;if&nbsp;(elements.size&nbsp;>&nbsp;0)&nbsp;elements.asList()&nbsp;else&nbsp;emptyList()最后一段代码调用ArraysUtilJVM,而后者又调用Arrays.asList(),返回一个Arrays.ArrayList实例。但是,这是一个实现细节,将来可能会更改。重要的是,结果对象实现了List接口(即,它是不可变的)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java