ArrayList和LinkedList怎么选,想过吗? 每日速读

2023-05-16 10:27:21 | 来源:今日头条
年少往事

记得刚学数据链表的时候,老师是不是说,读多写少用数组,写多读少用链表,但你有没有想过多少才算多?我也有这个疑问,刚好今天有时间,借这个话题一起探讨,ArrayList和LinkedList选择之写操作。


(资料图片仅供参考)

磁盘IO

我们都知道,磁盘IO以块为单位读取数据,如果你所需要的数据都存储在一个块呢,一次IO即可返回。如果跨越多个块,只要你的块是连续的,类似MYSQl,基于预读机制,一次读取多个块的数据。这明显利好数组,因为数组申请内存的时候,大小是固定且连续的。如果是链表,它的数据随机散落在不同的块,意味着磁盘IO很快。

小结数组读性能好是因为数据顺序存储,一次IO即可返回链表读性能差是因为数据随机存储,多次IO才能返回扩容

我们都知道,ArrayList存在扩容问题,在频繁写入的时候,会因为容量不足需要重写开辟新的数组空间,然后复制原数组数据到新的数组,这个过程消耗大量内存,这也是提出写多用链表的原因。

那么,是不是只要写多就用链表?这个回答显然是否定的,不然没有探讨的意义。下面我们看看大数据量下两者写入差异。

小试牛刀,500万数据看看

ArrayList初始容量1万,循环插入500万数据,扩容9次,用时138ms,LinkedList只需要不停创建节点,将节点next绑定即可,但用时724ms,差距5倍多。

小结

500万数据写入,用ArrayList是上策。不过能接触到这么多数据量的情况并不多,实际使用以实际情况为准,多测测你的业务和机器选择比较好,不过对于我来说,优先考虑ArrayList,因为从GC的角度来说,顺序存储利于GC,不管是CMS还是G1。

加量-1千万

可以看到,一千万数据量依然有接近3倍的差异,看到这你还犹豫什么,无脑ArrayList

2千万

没想到2千万就被反超了,但是你以为这样会说服我使用LinkedList吗,我只能说Naive

3千万

已持平!

4千万

重新反超,这么大的数据量下,linkedList创建大量node,比需要开辟新数组内存的arrayList消耗的时间更多,内存也更多,不信Jmap看看?而arrayList可是扩容了12次

结论

没得出什么牛逼结论,反而看出两个list在大数据量情况下,性能不是一定谁更好,可能是两条有多个交点的曲线。在选择上,无脑arrayList,如果是重要场景,最好根据业务和机器配置选择合适的。但业务会增长,摸着良心问自己,业务增长到另一个交点的时候,你会改过来吗!

上一篇 下一篇

相关新闻

ArrayList和LinkedList怎么选,想过吗? 每日速读

8开纸有多大 尺寸_8开纸 环球最资讯

光明房地产15亿元小公募债券项目状态更新为“已反馈”

环球快看点丨售价13.36万 启辰星星享事成版正式上市

5月15日基金净值:广发利鑫灵活配置混合A最新净值2.34,跌0.21% 每日聚焦

手机系统版本过低怎么升级啊快手(手机系统版本过低怎么升级)

【新要闻】5月15日基金净值:鹏扬景沣六个月持有期混合A最新净值1.1056,涨0.37%

Failed to connect to zw.gozuowen.com port 80: Timed out

顺义电大2022招生简章_顺义电大

全球微速讯:普蕊斯获33家机构调研:截至2023年3月31日,公司员工总数为3,896人,专业的业务人员超过3,700人(附调研问答)

怎样做面包简单好吃视频_怎样做面包简介介绍_焦点热文

日媒:美军基地给日本带来沉重负担 冲绳民众接连抗议

彭泽论坛中国彭泽网_彭泽论坛网|要闻

Redmi新款平板电脑曝光!已获EEC认证 难道是M84?

天天速讯:体罚男孩的方法 全年光脚_体罚男孩的方法

最新新闻

ArrayList和LinkedList怎么选,想过吗? 每日速读

8开纸有多大 尺寸_8开纸 环球最资讯

光明房地产15亿元小公募债券项目状态更新为“已反馈”

环球快看点丨售价13.36万 启辰星星享事成版正式上市

5月15日基金净值:广发利鑫灵活配置混合A最新净值2.34,跌0.21% 每日聚焦

手机系统版本过低怎么升级啊快手(手机系统版本过低怎么升级)

【新要闻】5月15日基金净值:鹏扬景沣六个月持有期混合A最新净值1.1056,涨0.37%

Failed to connect to zw.gozuowen.com port 80: Timed out

顺义电大2022招生简章_顺义电大

全球微速讯:普蕊斯获33家机构调研:截至2023年3月31日,公司员工总数为3,896人,专业的业务人员超过3,700人(附调研问答)

怎样做面包简单好吃视频_怎样做面包简介介绍_焦点热文

日媒:美军基地给日本带来沉重负担 冲绳民众接连抗议

彭泽论坛中国彭泽网_彭泽论坛网|要闻

Redmi新款平板电脑曝光!已获EEC认证 难道是M84?

天天速讯:体罚男孩的方法 全年光脚_体罚男孩的方法

财面儿丨美的置业根据2021年股份奖励计划发行53.85万股新股-天天新消息

古林街道各村居:浓情五月 感恩常在

世界时讯:恒生指数收涨1.75% 恒生科技指数涨1.33%

世界热消息:贝康医疗拟4000万美元收购一家新加坡公司

【世界独家】深成指5月15日涨1.57%

自贡富顺古佛镇:用好统战人才资源 为乡村振兴注入活力

世界动态:福建厦门推出《水产市场诚信计量管理规范》 水产商户缺斤少两须退一赔三

沪指午后翻红:保险板块拉涨 整体涨幅超3.5%

环球热门:湖州如何讲好“芯”故事?

公司问答 | 西麦食品:持续关注和评估人工智能技术在生产经营中的应用机会

每日资讯:新飞冰箱怎么样知乎_新飞冰箱怎么样

资产超千亿却带儿子自首,河北首富为何从万人景仰变成庞氏骗局?

韩国首尔明年将试点2条“飞行汽车”航线

华原股份今日登陆北交所!盘中一度涨逾80%

【世界播资讯】古村老屋成文创空间丨乡村振兴进行时