当前位置: 首页 > 网络应用技术

ArrayList,LinkedList分析

时间:2023-03-06 19:35:21 网络应用技术

  ArrayList实现了列表接口,即一个顺序容器,即存储在相同的数据与放入顺序相同。它允许放置在空元素中,底层通过数组实现。

  ArrayList不实现同步(同步)。如果需要访问线程,则可以手动同步或使用向量。

  对象数组和元素数量。

  在执行添加方法时,调用了enerecapacity Internalle方法,以确认当大小+1足以在容量不足时扩大容量时是否足够。

  值得注意的是,在将新容量扩展到旧容量的1.5倍之后,它可能会溢出以变成负数。此时,

  最终结果是,无论它是否溢出,它都可以保证新容量是积极的。

  综上所述:

  阵列扩展后,旧数组中的元素将复制到新数组。使用了新的内存空间。此操作的成本很高。您应该尝试避免阵列容量的扩展。指定其容量或手动扩展容量。

  自动容量的默认容量扩展策略是容量的1.5倍。如果它仍然小于手动设置的容量,则将其设置为手动设置的大小。手动扩展的效率更高,并且可以根据情况而不会浪费内存空间来扩展。

  LinkedList还实现了列表接口和Deque接口,这意味着它可以被视为顺序容器,以及队列(队列),同时作为堆栈。队列。

  LinkedList不实现同步(同步)。如果需要线程,则可以使用方法将其包装。

  这是一个两条链接的列表,头节点首先,尾部节点last和元素。

  节点是私人内部类

  对于定位索引上的节点,请使用索引 < (size >> 1)确定,哪个更接近第一个也是最后一个。

  原始:https://juejin.cn/post/7101531401434398751