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

问题描述 投票:0回答:1

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

android kotlin
1个回答
1
投票

他们是不一样的:

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

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

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

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

结论:

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