Kotlin 如何存储列表的数据?
How does Kotlin store the data for a list?
我想知道 Kotlin 如何将数据存储在列表中。我已经阅读了函数 listOf
和接口 List
的源代码,但我一直无法找到数据存储的位置。例如 val list = listOf(1,2,3)
。这三个数字用什么存储方式存储?
感谢您的阅读。
如果您遵循调用链,listOf(vararg elements: T)
在 JVM 上调用 Arrays.asList(elements)
,它看起来像:
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
这不是常用的Java ArrayList,而是同名的私有class。但就像 public ArrayList 一样,项目存储在支持对象数组中。在这种情况下,vararg
对象数组直接用作后备数组,因此没有多余的复制或分配。源码可以查看here.
我想知道 Kotlin 如何将数据存储在列表中。我已经阅读了函数 listOf
和接口 List
的源代码,但我一直无法找到数据存储的位置。例如 val list = listOf(1,2,3)
。这三个数字用什么存储方式存储?
感谢您的阅读。
如果您遵循调用链,listOf(vararg elements: T)
在 JVM 上调用 Arrays.asList(elements)
,它看起来像:
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
这不是常用的Java ArrayList,而是同名的私有class。但就像 public ArrayList 一样,项目存储在支持对象数组中。在这种情况下,vararg
对象数组直接用作后备数组,因此没有多余的复制或分配。源码可以查看here.