List详解

https://www.jianshu.com/p/63b01b6379fb

image.png

ArrayList和LinkedList

ArrayList底层是数组,数组容量是不可变的,因此ArrayList需要动态扩容。在增加操作时,动态扩容会消耗时间。
由于ArrayList底层是数组,因此每个元素都带有索引,在查询效率上要比LinkedList高很多

LinkedList底层是双向链表,新增元素就是在链表上新增节点,不存在扩容的问题,因此在增删改效率上较高,但是由于不存在索引,每次查询都要遍历整个链表,查询效率较低

  • ArrayList优化了扩容机制,因此实际操作中, ArrayList在执行新增操作时,效率也略高于LinkedList

forEach和for循环的快慢

ArrayList底层是数组,所以使用for循环速度稍快,因为for循环用到了index索引。

LinkedList使用forEach循环较好

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容