Java源码学习(JDK 11)——java.lang.Collection

2021-02-11 15:19

阅读:419

  • ArrayList 扩容机制:数组复制 Arrays.copyOf(T[] original, int newLength) 方法
    添加元素时当前容量等于数组长度:

    • minCapacity = size + 1 调用 grow(minCapacity) 确保扩容后容量至少大 1

      • minCapacity

      • minCapacity >= 1.5 * size

        • 默认构造器构造的空列表 扩容到 max(minCapacity, 10)
        • 其他情况 扩容到 minCapacity

    即一个默认构造器构造的空列表,第一次添加元素时,数组长度由 0 变为 10,之后按最少 1.5 倍扩容。
    而一个指定了初始容量的列表,每次添加元素时,都按照最少 1.5 倍扩容。

  • ArrayList 内部类 Itr 和 ListItr 基于数组的操作实现。


评论


亲,登录后才可以留言!