为什么arrayOf()与mutableListOf()相同但有限?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么arrayOf()与mutableListOf()相同但有限?相关的知识,希望对你有一定的参考价值。
试图理解当arrayOf()
与mutableListOf()
相同但删除add()
和remove()
等功能时的重点是什么?
答案
他们是不一样的:
arrayOf()
在引擎盖下创造了一个Array
和mutableListOf()
和ArrayList
。
您选择哪一个取决于您的应用程序。
数组是固定大小的数据结构。为了添加/删除值,您需要使用新的更改创建旧数组的副本(这很昂贵),但无论您是否使数组变大,访问元素都具有恒定的时间复杂度。你需要手动完成。
另一方面,ArrayList
也使用数组进行内部表示,但为您提供了一个可变接口。因此,添加/删除元素仍会导致内部数组被复制,但此过程将被抽象出来。
结论:
- 如果您需要初始化列表一次,并且仅在访问它之后,您应该使用
Array
。 - 如果您需要在极少数情况下添加/删除元素并且大部分都在阅读,那么您应该使用
ArrayList
。 - 如果您需要不断添加/删除值,请使用
LinkedList
。
以上是关于为什么arrayOf()与mutableListOf()相同但有限?的主要内容,如果未能解决你的问题,请参考以下文章