1.

ArrayList

の概要

このクイックチュートリアルでは、すでに初期化されている

ArrayList

に複数の項目を追加する方法を説明します。


ArrayList

の使用方法については、https://www.baeldung.com/java-arraylistを参照してください。

2.

AddAll

まず最初に、

ArrayList

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

まず、コレクションを引数として取る

addAll()

を使用します。

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

  • 最初のリストに追加された要素は、

    anotherList

    の要素と同じオブジェクトを参照することに注意してください。**

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

3.

Collections.addAll


Collections

クラスは、コレクションを操作したりコレクションを返す静的メソッドだけで構成されています。

そのうちの1つは

addAll

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

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

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

また、2つの配列を使用した操作を例示するものもあります。

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

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

4. Java 8を使う

このバージョンのJavaは新しいツールを追加することによって私たちの可能性を開きます。次の例で探るのは

Stream

です。

List<Integer> source = ...;
List<Integer> target = ...;

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

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

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

必要に応じて要素をフィルタリングすることは可能です。例えば、整数値:

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

最後に、null-safeな方法で作業したいというシナリオがあります。

それらのために、我々は

Optional

を使うことができます:

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

上記の例では、

addAll

メソッドによって

source

から

target

に要素を追加しています。

5.まとめ

この記事では、すでに初期化されている

ArrayList

に複数の項目を追加するさまざまな方法について説明しました。

いつものように、コードサンプルはhttps://github.com/eugenp/tutorials/tree/master/core-java-collections[over on GitHub]にあります。