# 数组

数组是一种线性数据结构,使用一组连续的内存空间存放相同类型的数据。

数组的优势在于:可以实现随机访问

数组可以根据index计算出要访问的地址,实现随机访问,计算公式为:

a[i]_address = base_address + i * data_type_size

数组的劣势在于:为保证数据的连续性,插入和删除需要移位,比较低效,但某些场景可以优化操作:

  • 如果数据本身无序,插入时可以将原数据移动到数组尾部,然后插入新数据。

  • 对于删除,可以采用标记删除,等到数组空间不够了再进行真正的删除。

    JVM 标记清除垃圾回收算法的核心思想

容器是对数组的封装,有两个优势:封装了数组操作细节,动态扩容,劣势在于无法存储基本类型,需要存储包装类型,有一定性能开销,不适合底层开发。

ArrayList自动扩容1.5倍

上次更新: 2/13/2025, 3:29:47 AM