为什么arrayOf()与mutableListOf()相同但有限?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么arrayOf()与mutableListOf()相同但有限?相关的知识,希望对你有一定的参考价值。

试图理解当arrayOf()mutableListOf()相同但删除add()remove()等功能时的重点是什么?

答案

他们是不一样的:

arrayOf()在引擎盖下创造了一个ArraymutableListOf()ArrayList

您选择哪一个取决于您的应用程序。

数组是固定大小的数据结构。为了添加/删除值,您需要使用新的更改创建旧数组的副本(这很昂贵),但无论您是否使数组变大,访问元素都具有恒定的时间复杂度。你需要手动完成。

另一方面,ArrayList也使用数组进行内部表示,但为您提供了一个可变接口。因此,添加/删除元素仍会导致内部数组被复制,但此过程将被抽象出来。

结论:

  • 如果您需要初始化列表一次,并且仅在访问它之后,您应该使用Array
  • 如果您需要在极少数情况下添加/删除元素并且大部分都在阅读,那么您应该使用ArrayList
  • 如果您需要不断添加/删除值,请使用LinkedList

以上是关于为什么arrayOf()与mutableListOf()相同但有限?的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin 可变集合与不可变集合的创建与转换

Kotlin—数据容器之数组

Kotlin—数据容器之数组

Kotlin—数据容器之数组

Kotlin—数据容器之数组

用 Kotlin 写 Android 3—数组,集合与字符串