【发布时间】:2021-08-05 13:18:39
【问题描述】:
我想知道 Kotlin 如何将数据存储在列表中。我已经阅读了函数listOf和接口List的源代码,但是我一直无法找到数据存储在哪里。例如val list = listOf(1,2,3)。这三个数字是用什么存储方式存储的?
感谢您的阅读。
【问题讨论】:
-
这取决于具体的
List实现。 Kotlin 中对listOf的调用导致ArrayList实例,这是Kotlin 和Java 中最典型的List实现。ArrayList位于java.util.Arrays,请随意浏览其源代码。 -
正如 Nikolai 所说,
List是一个接口,旨在允许许多不同类型的实现。许多使用引用数组,但其他使用链表或树,或者是更复杂数据结构(例如有序集或树)的视图。您甚至可以编写一个将其信息存储在文件或网络中的软件!当然,每一个都对性能特征、内存使用等有影响——但对于创建它的人来说,这些都是问题,通常编码使用列表应该能够在不做任何假设的情况下使用任何实现。