Java 中最流行的列表是ArrayList
和LinkedList
。
在 Kotlin 中,我看到 ArrayList
和 List
。 List
实际上是一个 LinkedList
吗?例如
val list = listof("1st", "2nd")
最佳答案
如果您使用 listOf
,您将获得某种 List
实现,带有只读 List
接口(interface),包含您作为参数提供的元素。通过使用这个函数,你暗示你不关心它是如何实现的。 实际上,如果您在 JVM 上,这可能仍然是一个 正如@Zabuza 在这里的评论中指出的,它实际上是由一个略有不同的类 java.util.ArrayList
。Arrays.ArrayList
支持。
如果您使用 mutableListOf
,同样,您只是说您想要包含实现 MutableList
的元素的东西 ,但实现取决于标准库。同样,这目前由 ArrayList
支持,但这是一个实现细节。
如果您确实需要,有几个函数可以显式返回更具体的类型。有 arrayListOf
, sortedSetOf
, linkedMapOf
,还有一些 - 碰巧没有 linkedListOf
,但如果你需要一个并且不想使用 LinkedList
,你可以自己实现它构造函数。
更通用的 listOf
和 mutableListOf
是更可取的,如果有变化的话你以后会在平台之间共享你的代码——因为它们是标准库的一部分,它们可以在 JVM 上返回一个 ArrayList
,但如果编译为 JavaScript 或 Native,则返回不同平台的特定实现。
关于java - Kotlin 中的 List 是链表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51042337/