Java LinkedList addAll() メソッド

Java LinkedList


addAll()このメソッドは、Java のLinkedListクラスが提供する一般的なメソッドで、あるコレクション内のすべての要素を別のコレクションに追加するために使用されます。このメソッドは、一括データ操作を処理する際に非常に役立ちます。


メソッド構文

LinkedListクラスは2つのaddAll()メソッドのオーバーロード形式を提供します:

1、リストの末尾に要素を追加する

boolean addAll(Collection<? extends E> c)

2、指定した位置に要素を挿入する

boolean addAll(int index, Collection<? extends E> c)

パラメータの説明

最初の形式のパラメータ

  • c:追加するコレクションの要素。要素の型は LinkedList の要素の型と互換性がある必要があります

2番目の形式のパラメータ

  • index:挿入位置のインデックス(0から始まる)
  • c:追加するコレクション要素

戻り値

両方のメソッドが返すboolean値:

  • true:LinkedList が呼び出しによって変更された場合
  • false:渡されたコレクションが空、または追加された要素がない場合

使用例

基本的な使用例

例

import java.util.LinkedList;
import java.util.ArrayList;

public class AddAllExample {
    public static void main(String[] args) {
        // 2つのコレクションを作成
        LinkedList<String> linkedList = new LinkedList<>();
        ArrayList<String> arrayList = new ArrayList<>();
       
        // ArrayList に要素を追加
        arrayList.add("Apple");
        arrayList.add("Banana");
        arrayList.add("Orange");
       
        // addAll() メソッドを使用して ArrayList の要素を LinkedList に追加
        linkedList.addAll(arrayList);
       
        System.out.println("LinkedList の内容: " + linkedList);
    }
}

出力結果:

LinkedList 内容: [Apple, Banana, Orange]

指定した位置に要素を挿入する

例

import java.util.LinkedList;
import java.util.Arrays;

public class AddAllAtIndexExample {
    public static void main(String[] args) {
        LinkedList<String> fruits = new LinkedList<>(Arrays.asList("Apple", "Orange"));
        LinkedList<String> moreFruits = new LinkedList<>(Arrays.asList("Banana", "Grape"));
       
        // インデックス 1 に要素を挿入
        fruits.addAll(1, moreFruits);
       
        System.out.println("変更後の LinkedList: " + fruits);
    }
}

出力結果:

修改后的 LinkedList: [Apple, Banana, Grape, Orange]

注意事項

  1. 空のコレクションの処理:渡されたコレクションが空(null)の場合、例外がスローされますNullPointerException
  2. インデックス範囲外:指定されたインデックスが範囲外の場合(index < 0 || index > size())、例外がスローされますIndexOutOfBoundsException
  3. パフォーマンスに関する考慮事項:LinkedList の途中に大量の要素を挿入する場合、ArrayList よりも効率的な可能性があります
  4. 要素の順序:新しく追加された要素は、元のコレクション内での順序を維持します

実際の適用シーン

addAll()このメソッドは、以下のシナリオで特に役立ちます:

  1. 複数のコレクションのデータを結合する
  2. LinkedList の内容を一括初期化する
  3. 特定の位置に一連の要素を挿入する
  4. コレクションのコピーまたはクローン機能を実装する

ArrayList の addAll() との比較

特性 LinkedList addAll() ArrayList addAll()
末尾に追加する際のパフォーマンス O(1) O(1) 償却時間
途中に挿入する際のパフォーマンス O(n) O(n)
メモリ使用量 より高い(各要素に追加のポインタがある) より低い

Java LinkedList

その他の拡張