Java ArrayListに複数の項目を追加する

Java ArrayListに複数のアイテムを追加する

1. オーバーロードArrayList

このクイックチュートリアルでは、すでに初期化されているArrayListに複数のアイテムを追加する方法を示します。

ArrayListの使用方法の概要については、to this article hereを参照してください。

2. AddAll

まず、ArrayListに複数のアイテムを追加する簡単な方法を紹介します。

まず、addAll()を使用します。これは、引数としてコレクションを取ります。

List anotherList = Arrays.asList(5, 12, 9, 3, 15, 88);
list.addAll(anotherList);

最初のリストに追加された要素は、anotherListの要素と同じオブジェクトを参照することに注意してください。

そのため、これらの要素のいずれかで行われた「すべての修正」は、両方のリストに影響します。

3. Collections.addAll

Collectionsクラスは、コレクションを操作または返す静的メソッドのみで構成されます。

それらの1つはaddAllであり、宛先リストが必要であり、追加する項目は個別に指定することも、配列として指定することもできます。

これは、個々の要素で使用する方法の例です。

List list = new ArrayList<>();
Collections.addAll(list, 1, 2, 3, 4, 5);

そしてもう1つは、2つの配列で操作を例示します。

List list = new ArrayList<>();
Integer[] otherList = new Integer[] {1, 2, 3, 4, 5};
Collections.addAll(list, otherList);

上記のセクションで説明した方法と同様に、ここでの両方のリストの内容は同じオブジェクトを参照します。

4. Java 8の使い方

このバージョンのJavaは、新しいツールを追加することで可能性を開きます。 次の例で検討するのはStreamです。

List source = ...;
List target = ...;

source.stream()
  .forEachOrdered(target::add);

この方法の主な利点は、スキップとフィルターを使用できることです。 次の例では、最初の要素をスキップします。

source.stream()
  .skip(1)
  .forEachOrdered(target::add);

必要に応じて要素をフィルタリングすることができます。 たとえば、整数値:

source.stream()
  .filter(i -> i > 10)
  .forEachOrdered(target::add);

最後に、ヌルセーフな方法で作業したいシナリオがあります。 それらの場合、Optionalを使用できます。

Optional.ofNullable(source).ifPresent(target::addAll)

上記の例では、addAllメソッドによってsourceからtargetに要素を追加しています。

5. 結論

この記事では、すでに初期化されているArrayListに複数のアイテムを追加するさまざまな方法について説明しました。

いつものように、コードサンプルはover on GitHubで見つけることができます。