You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何创建ArrayList并添加1000万元素的速度比LinkedList更快?

Java 17下ArrayList与LinkedList尾部插入性能测试分析
  • 测试基础条件:Java 17 运行环境,测试场景为反复创建ArrayList、LinkedList实例,分别向两类集合执行10000000次尾部元素插入操作
  • 预期与实际的差异:按照LinkedList的链表结构特性,尾部插入仅需创建新节点、调整相邻节点指针,理论性能应该优于需要定期扩容、执行数组全量拷贝的ArrayList。但实际测试结果完全相反,ArrayList的插入效率远高于LinkedList
  • 核心原因:System.arraycopy()这类JDK内置的原生函数执行效率远高于预期,这类函数直接调用底层内存拷贝能力,跳过了Java层的大量对象操作开销。对比LinkedList每次插入都需要创建新的Node对象、处理对象元数据、维护节点指针关联的开销,批量内存拷贝的整体成本要低得多
  • 实测LinkedList优势场景:仅在合并两个LinkedList的场景下,LinkedList的性能表现优于ArrayList,该场景下LinkedList仅需修改头尾节点指针即可完成合并,无需像ArrayList一样申请大容量新数组、执行全量元素拷贝

内容的提问来源于stack exchange,提问作者user14978390

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 01:54:03