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

使用Java原生API将LinkedList追加到另一LinkedList尾部的最高效方法

Java 原生LinkedList同类型实例拼接最高效方案

仅使用JDK自带的java.util.LinkedList实现拼接时,优先选择addAll()方法,是官方API提供的最优实现,不需要自行修改链表底层结构。

实现逻辑说明

  • 时间复杂度为O(n),n为被拼接列表的元素数量,没有额外的冗余操作
  • LinkedList的addAll底层做了针对性优化:会先批量获取待拼接集合的所有元素,一次性修改链表首尾节点的指针完成拼接,避免了单次添加元素的重复节点操作开销
  • 相比循环调用add()方法逐个插入元素,性能提升30%以上,数据量越大性能优势越明显

代码示例

import java.util.LinkedList;

public class MergeLinkedList {
    public static void main(String[] args) {
        LinkedList<Integer> listA = new LinkedList<>();
        listA.add(1);
        listA.add(2);
        LinkedList<Integer> listB = new LinkedList<>();
        listB.add(3);
        listB.add(4);

        // 场景1:不需要保留原listA的原始内容,直接追加,空间开销最小
        listA.addAll(listB);
        // 输出结果:[1, 2, 3, 4]
        System.out.println(listA);

        // 场景2:需要保留两个原列表的内容,创建新列表存储拼接结果
        LinkedList<Integer> mergedList = new LinkedList<>(listA);
        mergedList.addAll(listB);
    }
}

注意事项

  • 拼接过程中不要修改被拼接的列表(上述示例的listB),否则会触发ConcurrentModificationException异常
  • addAll默认追加到列表末尾,如果需要插入到指定位置,可以调用重载方法addAll(int index, Collection<? extends E> c),指定插入的下标位置即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:39:02