- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2つの配列を1つの配列にする。)
Java初心者が2つの配列を1つの配列に結合する方法
このQ&Aのポイント
- Java初心者の方が、配列を結合する方法について質問しています。
- 具体的には、private static int[] concat(int[] ia1, int[] ia2) というメソッドを使い、2つのint型配列を連結させる方法について教えて欲しいとのことです。
- また、その結果として得られる配列を表示するために、メインメソッド内でテスト用の配列を作成していることも説明されています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
考え方としては以下のようになります。 (1)配列1の要素数をX、配列2の要素数をYとする。 (2)要素数X+Yの配列を定義する。これを新配列と呼ぶ。 (3)新配列[0]~[X-1]に配列1[0]~[X-1]を代入 (4)新配列[X]~[X+Y-1]に配列2[0]~[Y-1]を代入 private static int[] concat(int[] ia1, int[] ia2) { int x = ia1.length; //配列1の要素数 int y = ia2.length; //配列2の要素数 int[] sin = new int[x + y]; //新配列の定義 int d = 0; //新配列用のインデックス for( int i = 0 ; i < x ; i++ ) sin[d++] = ia1[i]; for( int i = 0 ; i < y ; i++ ) sin[d++] = ia2[i]; return sin; } 配列の要素数を途中で増やしたり、減らしたりできないので、通常は List等のオブジェクトを使います。個人的にはこっちを勧めたい。 http://java.sun.com/javase/ja/6/docs/ja/api/index.html?java/util/List.html http://www.hellohiro.com/list.htm
お礼
即効のご解答ありがとうございました! 新配列というのがあるんですね。 for( int i = 0 ; i < x ; i++ ) sin[d++] = ia1[i]; for( int i = 0 ; i < y ; i++ ) sin[d++] = ia2[i]; のところがよく理解できないので、もう一度リサーチして調べます。 本当にありがとうございました!