【4分で分かる】Java言語で配列を結合する方法(一つにまとめる)を見やすくまとめてみた

配列同士を結合して一つの配列にしたいと思ったことはありませんか?

複数の配列を一つにするための手法をいくつかわかりやすく短時間でご紹介いたします!

これを見れば今の自分の状況にあった結合方法がわかるとおもいます。

なお、Javaの記事については、こちらにまとめています。

目次

配列の結合

通常の配列で結合を行う場合

System.arraycopyを用いる

System.arraycopyを用いることで連結したい配列の一つ目と連結先したい配列の二つ目を新しい配列にコピーしなおすという手法を取ります

int[] foo = {10, 20, 30};
int[] bar = {5, 15, 25};

int len = foo.length + bar.length;

int[] hoge = new int[len];

// まずhogeに先頭からfooの配列をコピーしていく
System.arraycopy(foo, 0, hoge, 0, foo.length);

// 次にhogeにbarをコピーしていく(コピー開始位置はfoo.lengthとする)
System.arraycopy(bar, 0, hoge, foo.length, bar.length);

for(int i = 0; i < len; i++)
{
    System.out.printf("%d ", hoge[i]);
}

実行結果

10 20 30 5 15 25

System.arraycopyについては下記記事でも解説を行っていますのでぜひご覧ください!

【5分でわかる】Javaで配列に値を追加する方法をわかりやすく解説

ArrayListで結合を行う場合

addAllを用いる

ArrayListで結合を行う場合はこのような書き方で実現できます。

ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList<Integer> list2 = new ArrayList<Integer>();

list.add(10);
list.add(20);
list.add(30);

list2.add(5);
list2.add(15);
list2.add(25);

list.addAll(list2);

for(int i = 0; i < list.size(); i++)
{
    System.out.printf("%d ", list.get(i));
}

実行結果

10 20 30 5 15 25

配列についてもっと詳しく知りたい!

配列についてもっと知りたい方はこちらもご覧ください!

まとめ

いかがだったでしょうか。

通常の配列では結合を行うのには向いていないためコピーを行う形で結合しなければなりません。

それに対してArrayListを用いる方法ではaddAllメソッドを呼び出すだけで済むのでとても簡単ですね。

特に問題がない場合は極力ArrayListを使うのがよいのではないでしょうか。

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次