Java LinkedList addAll() メソッド
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);
}
}
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);
}
}
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]
注意事項
- 空のコレクションの処理:渡されたコレクションが空(null)の場合、例外がスローされます
NullPointerException - インデックス範囲外:指定されたインデックスが範囲外の場合(index < 0 || index > size())、例外がスローされます
IndexOutOfBoundsException - パフォーマンスに関する考慮事項:LinkedList の途中に大量の要素を挿入する場合、ArrayList よりも効率的な可能性があります
- 要素の順序:新しく追加された要素は、元のコレクション内での順序を維持します
実際の適用シーン
addAll()このメソッドは、以下のシナリオで特に役立ちます:
- 複数のコレクションのデータを結合する
- LinkedList の内容を一括初期化する
- 特定の位置に一連の要素を挿入する
- コレクションのコピーまたはクローン機能を実装する
ArrayList の addAll() との比較
| 特性 | LinkedList addAll() | ArrayList addAll() |
|---|---|---|
| 末尾に追加する際のパフォーマンス | O(1) | O(1) 償却時間 |
| 途中に挿入する際のパフォーマンス | O(n) | O(n) |
| メモリ使用量 | より高い(各要素に追加のポインタがある) | より低い |
その他の拡張