Java集合中的List索引为什么从0开始,而不是从1开始

67 阅读1分钟

1. 内存地址计算效率

  • 数组在内存中是连续存储的,每个元素的位置通过基地址 + 偏移量计算:

    元素地址 = 基地址 + 索引 × 元素大小
    
  • 若索引从0开始:

    • 第一个元素地址 = 基地址 + 0 × 元素大小 → 直接等于基地址
    • 第n个元素地址 = 基地址 + n × 元素大小
  • 若索引从1开始:

    • 第一个元素地址 = 基地址 + (1-1) × 元素大小 → 需要多一次减法运算i-1)。
  • 结论:从0开始减少CPU指令,提高访问效率。