ArrayList实现了列表接口,即一个顺序容器,即存储在相同的数据与放入顺序相同。它允许放置在空元素中,底层通过数组实现。
ArrayList不实现同步(同步)。如果需要访问线程,则可以手动同步或使用向量。
对象数组和元素数量。
在执行添加方法时,调用了enerecapacity Internalle方法,以确认当大小+1足以在容量不足时扩大容量时是否足够。
值得注意的是,在将新容量扩展到旧容量的1.5倍之后,它可能会溢出以变成负数。此时,
最终结果是,无论它是否溢出,它都可以保证新容量是积极的。
综上所述:
阵列扩展后,旧数组中的元素将复制到新数组。使用了新的内存空间。此操作的成本很高。您应该尝试避免阵列容量的扩展。指定其容量或手动扩展容量。
自动容量的默认容量扩展策略是容量的1.5倍。如果它仍然小于手动设置的容量,则将其设置为手动设置的大小。手动扩展的效率更高,并且可以根据情况而不会浪费内存空间来扩展。
LinkedList还实现了列表接口和Deque接口,这意味着它可以被视为顺序容器,以及队列(队列),同时作为堆栈。队列。
LinkedList不实现同步(同步)。如果需要线程,则可以使用方法将其包装。
这是一个两条链接的列表,头节点首先,尾部节点last和元素。
节点是私人内部类
对于定位索引上的节点,请使用索引 < (size >> 1)确定,哪个更接近第一个也是最后一个。
原始:https://juejin.cn/post/7101531401434398751
