https://www.jianshu.com/p/63b01b6379fb
ArrayList和LinkedList
ArrayList底层是
数组
,数组容量是不可变的,因此ArrayList需要动态扩容
。在增加操作时,动态扩容会消耗时间。
由于ArrayList底层是数组,因此每个元素都带有索引
,在查询效率上要比LinkedList高很多
LinkedList底层是
双向链表
,新增元素就是在链表上新增节点,不存在扩容的问题,因此在增删改效率上较高
,但是由于不存在索引,每次查询都要遍历整个链表,查询效率较低
- ArrayList优化了扩容机制,因此实际操作中, ArrayList在执行新增操作时,效率也
略高于
LinkedList
forEach和for循环的快慢
ArrayList底层是数组,所以使用for循环速度稍快,因为for循环用到了index索引。
LinkedList使用forEach循环较好
网友评论