スライドショー

【4分で分かる】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

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

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

【Java入門】配列の使い方総まとめ(宣言、初期化、追加、要素数)
更新日 : 2019年7月29日

まとめ

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

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

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

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

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

オータケ

オータケ

30歳、フリーランスプログラマ。中学の頃よりプログラミングに興味を持ちゲーム開発やWebサイト構築などを経験
新しいフレームワークやライブラリに興味があり革新的な機能が含まれていると泣いて喜ぶ。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説